[9/7/2012]
Version 0.6.8.2                             "Say 'what' again"

- New features:

  * [all]: Support for matching architectures using specification
           strings and wildcards (for example, "linux-any").  See
           Debian Policy section 11.1 "Architecture specification
           strings" for more details.

- Minor bugs:

  * [cmdline]: Fix typo which prevented installing tasks using the
               apt-get compatible syntax ("aptitude install
               gnome-desktop^").

  * [cmdline]: Do not assume that APT::Default-Release always provides
               the candidate version of a package, instead use the
               policy defined by apt_preferences(5).
               (Closes: #587775, #631464, #686316)

  * [all]: Download changelogs from APT::Changelogs::Server instead
           of a fixed location, and replace very ancient and disused
           option for Aptitude::Changelog-URL-Template.
           (Closes: #687239)

- Documentation:

  * Update for default value of APT::AutoRemove::SuggestsImportant
    which is "true" since apt 0.8.15.3. (Closes: #685310)

  * Correctly reference APT::AutoRemove::RecommendsImportant and
    SuggestsImportant which do not contain any hyphens.
    (Closes: #579071)

- Translation updates:

  * Czech (Closes: #681693)
  * French (Closes: #680040, #685084)
  * Polish (Closes: #678153)
  * Russian (Closes: #686016)
  * Spanish (Closes: #686752)

[8/25/2012]
Version 0.6.8.1                             "Don hat"

- Crashes and serious errors:

  * Multi-arch update for the problem resolver:
    - handle conflicts without removing all foreign-arch
      packages (Closes: #672340) (LP: #831768)
    - correctly recognise dependencies solved by Multi-Arch:
      foreign packages (LP: #968412)

- Minor bugs:

  * [curses]: Use dpkg package names when calling dpkg
              (Closes: #680333)

- Internal changes:

  * Add (temporary) helpers for interacting with dpkg.

[5/11/2012]
Version 0.6.8                               "Never need a reason,
                                             never need a rhyme"

This version of aptitude requires apt 0.9 and will not build against
earlier releases.

- Crashes and serious errors:

  * [all]: Fix build with g++ 4.7
           Thanks Adrian Lang for the patch (Closes: #672335)

- New features:

  * [all]: Support really big files in the download system

           This follows recent changes in apt which added support for
           files greater than several gigabytes in size -- using the
           'unsigned long long' type to store the file size.

  * [all]: Update to tasks support: task packages, multi-arch, syntax

           Task packages (introduced with tasksel 3.0) are
           meta-packages which define the dependencies of tasks.  The
           packages themselves have always worked but the 'tasks'
           grouping policy and '?task' search term did not support
           them.  This update corrects for this.

           As a result of this change to tasksel all Debian tasks now
           function exactly like meta-packages. (Closes: #382631)

           The syntax for installing tasks from the command line has
           been updated.  It now supports specifying an arch and
           requires the same syntax as apt-utils ('^' must be the last
           part of the name).  Examples:

             # aptitude install gnome-desktop^
             # aptitude install ssh-server^:armel

           This avoids ambiguity that may arise when a task and
           package have the same name.

- Minor bugs:

  * [all]: Changelog downloading is restored
           (Closes: #669569, LP: #824708)

  * [cmdline]: Exit with non-zero status when a package run is
               aborted. (Closes: #293008)

  * Restore candidate version on undo, keep

    Previously, undo incorrectly restored the candidate
    to be currently installed version.  Keep did not
    restore it at all. (Closes: #529403)

- Cosmetic and UI bugs:

  * [curses]: Adjust default widths of localized columns:
              broken_count, downloadsize (Closes: #674045)

  * [all]: Fold some near-duplicate strings

  * [curses]: Update package views after 'Cancel pending actions'
              (Closes: #595753)

- Build system changes:

  * Remove redundancy in doc build system

    Lots of code was duplicated between makefiles for the
    various translations.  Much of this is now in common
    rules files making it easier to add new translations.

- Documentation:

  * [doc]: Add doctype headers to html docs.
  * Italian translation (Closes: #674664)
  * Fix minor errors in documentation. Thanks to Beatrice Torracca
    (Closes: #674675)
  * Fix groff warning in manpage (Closes: #675085)
  * Fix encoding problems with README files
  * Install some localized README files which were previously
    left out.

- Translation updates:

  * French (Closes: #673827, LP: #642840)
  * German (Closes: #672467, #668875)
  * Simplified Chinese

[5/2/2012]
Version 0.6.7                               "I said 'Step pause turn
                                             pause pivot step step'"

- Crashes and serious errors:

  * [cmdline]: Avoid dpkg and infinite loop in download-only mode
               (Closes: #629266) (LP: #975793)

  * [cmdline]: Check for apt_init errors in cmdline_download.cc
               (Closes: #670379)

- Minor bugs:

  * [all]: Fix various locking issues:

           - 'install' actions lock /var/cache/apt/archives

             Other tasks which access that directory (such as 'apt-get
             clean') will now fail if aptitude is downloading or
             installing packages. (Closes: #370381)

  * [all]: Actually use aptitude::Logging::Levels (Closes: #654344)

- Internal changes:

  * [all]: No longer use ListUpdate (from libapt-pkg) to update package
           lists.  Instead, restore the previous code and update it to
           include the semantics from ListUpdate which were missing.

           ListUpdate was too coarse to suit download_update_manager
           properly even though it more-or-less worked.

  * [all]: Do not call debtags on list update.  This was a rather
           unsightly kludge is better suited as a script for
           APT::Update::Post-Invoke.

  * [all]: Destroy download_threads when done with them.  The objects
           were previously left undestroyed, consuming resources and
           keeping, e.g., locks open longer than needed.

- Cosmetic and UI bugs:

  * [curses]: Apply patch from Ubuntu: don't mention 'su' in 'Become
              root'.

  * [cmdline]: Use arch-qualified names in 'Provided by' for virtual
               packages (LP: #972847)

  * [curses]: Preview screen ignores Pkg-Display-Limit

              Previously it would apply that limit if
              UI::Preview-Limit was not set.  This was causing
              confusion and it is more useful to have these as two
              clearly distinct settings. (LP: #381507)

- Build system changes:

  * [all]: Include build of gtest when building gmock. (Closes: #670403)

  * [all]: Fix check_boost.sh for out-of-tree builds

- Documentation:

  * [doc]: Apply patch from Ubuntu: update Finnish manpage to point to
           doc package.

- New translations:

  * Croatian (Closes: #667934)

[3/17/2012]
Version 0.6.6                               "There is not one you,
                                             there are many."

This version of aptitude brings in basic multi-arch support.  Similar
to APT, foreign-arch packages are displayed using their full name,
including architecture, for example: 'libc6:armel'.

This is intended to provide some support for users of multi-arch
systems without causing huge breakage.  For users of single-arch
systems the changes are limited to displaying the full names of all
packages in log files and internal messages.

CAUTION: The problem resolver is not yet updated to handle multi-arch
properly.  Do not rely on it to make intelligent suggestions at this
stage, instead, use the architecture information to manually check and
resolve any problems.

- Removed features:

  * [gtk]: Remove menu entry for minesweeper.  This was causing
           security concerns by potentially invoking an external
           program with root privledges. (Closes: #552522)

- Security fixes:

- Crashes and serious errors:

  * [cmdline]: List update errors are reported. (Closes: #451137)

  * [all]: Fix '?action(upgrade)' and others (were finding kept
           packages instead).  Thanks to Rogier <rogier777@gmail.com>
           for the patch (Closes: #603862)

  * [curses]: Hack to prevent debug messages dumping to the screen
              (Closes: #651748)

- New features:

  * [all]: Basic multi-arch support as discussed above.

      - Use arch-qualified names (full names) in most places.
      - Sorting by name considers full names (i.e. architecture).
      - Show architecture and multi-arch fields in package info.
      - Store package states uniquely by name *and* architecture.
      - Add related search terms:

        * ?architecture(architecture), ~rarchitecture
          Select packages for the given architecture (such as
          "amd64", or "all").  Special values: "native" and
          "foreign".

        * ?multiarch(multiarch)

          Select packages with a multi-arch capability of multiarch
          (that is, either "foreign", "same", "allowed", or "none").

      - Default search (with no explicit term) now accepts "name:arch"
        patterns which match "?exact-name(name)?architecture(arch)".
      - Add architecture grouping policy.

      (Closes: #659079, #661744)
      (LP: #454941, #845136, #884945, #904486)

  * [curses]: Use libraries ("liba", "libb", etc.) with 'firstchar'
              grouping policy.  Removes crowding of the "l" group.

- Minor bugs:

  * [all]: List update now runs APT::Update hooks. (Closes: #476399)

  * [cmdline]: Actually silence progress messages with '-q2'.
               (Closes: #141719)

  * [all]: Fix various locking issues:

           - '[auto]clean' locks /var/cache/apt/archives;
           - 'update' locks /var/lib/apt/lists; (Closes: #653479)

  * [all]: Fix 'priority' cost level in resolver.  The values should
           have been negated but were not.  Thanks to Modestas Vainius
           for this one. (Closes: #608786)

  * [all]: Make ~VCURRENT etc. behave like ?version(CURRENT).  A
           latent bug was preventing the special values from being
           handled by the short form.

- Internal changes:

  * [all]: Update package lists using ListUpdate (from libapt-pkg).
           Now the process is identical to apt-get and other tools,
           reporting errors more correctly and running the APT::Update
           hooks.

  * [all]: Refactor various APT-related comparison functors which
           were spread all over the place.  There is now a single
           implementation of each which resides sanely in apt.h.

  * [curses]: Refactor duplicated make_{info,dep,ver}_screen + insert
              code.  Three new functions replace all standard uses of
              the previous code: show_info_screen, etc.

- Cosmetic and UI bugs:

  * [cmdline]: Fix some help and prompt strings which wrongly included
               localized names for commands such as 'why'.
               (Closes: #486615)

  * [curses]: Change ordering of top-level sections to match the order
              in aptitude::Sections::Top-Sections.  The default order
              is now: main, contrib, non-free.  (Closes: #181997)

  * [curses]: Improve error messages when parsing grouping policies to
              use the user-visible names, rather than the internal
              names.  (Closes: #231595)

  * [all]: Change default width of %D, %I, %o, and %Z.  Thanks to
           Michał Kułach for this one. (Closes: #599209)
           (LP: #741417)

  * [all]: Change default width of %V, %v to 14.  This greatly increases
           the number of versions which will display completely.
           (Closes: #624542)

  * [cmdline]: Use nice formatting for both parts of the download
               progress display.  Previously the 'downloaded' size was
               being reported in bytes; now it uses larger units as
               appropriate to be more readable.

  * [cmdline]: 'versions' now groups it's results by 'package:arch'
               instead of 'package'.

  * [all]: Cleared up grouping, sorting policy error messages.
           (Closes: #231595)

- Build system changes:

  * [all]: Add configure option '--disable-tests'.

  * [all]: Don't check for libvte if GTK+ is disabled.

  * [all]: Apply patch from Ubuntu to fix build -D_FORTIFY_SOURCE=2
           errors.  Thanks to Colin Watson and Michael Vogt
           (Closes: #497539)

  * [all]: Avoid most library and header checks if --disable-aptitude.

  * [all]: GTK+ frontend is disabled by default.

  * [all]: Enabling GTK+ or Qt is an error if libraries are missing.

- Documentation:

  * [doc]: Minor correction to the user's manual. (Closes: #365485)

  * [doc]: Clean recent changes to man page description of
           'forbid-version'.

- Translation updates:

  * Brazilian Portuguese (Closes: #483964)
  * Hungarian (Closes: #592468)
  * Polish (Closes: #659803)
  * Russian (Closes: #662624)

[2/6/2012]
Version 0.6.5                               "Splat!"

- Removed features:

  * [cmdline]: Remove broken safe-upgrade-only options.

               Specifically, Safe-Upgrade::No-New-Installs and
               Safe-Upgrade::Show-Resolver-Actions.

               These options were documented but have never worked.  A
               quick skim didn't turn up any bugs filed about them, so
               I guess no-one ever tried them.  Removed them.

- Minor bugs:

  * [all]: Do not translate program options in Catalan translation.
           (Closes: #462558)

  * [all]: Do not translate program options in Simplified Chinese
           translation. (Closes: #563132)

- Internal changes:

  * [gtk]: Hopefully fix the use of VTE in the GTK+ frontend.

  * [all]: Don't run file in aptitude-run-state-bundle.  Thanks to
           Sven Joachim for the patch. (Closes: #635572)

- Cosmetic and UI bugs:

  * [curses]: Handles 'Enhances' relations in preview. (Closes: #583201)

  * [cmdline]: Fix resolver help for next/previous. (Closes: #495046)

  * [curses]: Boldness of Tags and User-Tags fields. (Closes: #652360)

  * [curses]: Wrap long description of boolean_config_treeitems. (Closes: #653120)

  * [cmdline]: Add versions, newlines to --help. (Closes: #581597, #604392)

  * [all]: Fix prompt strings. (Closes: #652419)

  * [cmdline]: Typos in output of version, usage.

- Build system changes:

  * [all]: Clean up the use of AC_COMPILE_IFELSE and AC_LINK_IFELSE
           to fix a bunch of autoconf warnings.

  * [all]: Modify autoconf/automake scripts to handle gmock changes.

  * [all]: Silence automake warnings about GNU extensions.

- Documentation:

  * [doc]: Cleaned up the documentation of --new-new-upgrades and
           --no-new-installs. (Closes: #568297)

  * [doc]: Minor fixes in documentation and changelog. (Closes: #403220)

  * [doc]: More precise wording suggested by jidanni in the
           manpage. (Closes: #542293)

  * [doc]: Switch Polish manpages to po4a. Thanks to Michał
           Kułach. (Closes: #656820)

  * [doc]: Fix link in users manual. (Closes: #397038)

  * [doc]: Fix missing entity refs and filename elements. (Closes: #651289)

  * [doc]: Update development details in the user's reference. (Closes: #651288)

  * [doc]: Fix description of Aptitude::Sections::Top-Sections. (Closes: #651661)

  * [doc]: Mention /etc/apt/apt.conf.d/* in Configuration file. (Closes: #497138)

  * [doc]: Fix manpage text for safe-resolver.  Thanks to Dan
           Jacobson (Closes: #511731, #568297)

  * [doc]: Update description of forbid-version. (Closes: #511365)

  * [doc]: Fix typos in manpage.  Thanks to A. Costa for reporting
           them (Closes: #644651)

  * [doc]: List items wrongly nested in the document.  Thanks
           Kobayashi Noritada <nori1@dolphin.c.u-tokyo.ac.jp> (Closes: #365615)

  * [doc]: Update dead URL for regular expressions in the manual,
           thanks Diederik de Haas <didi.debian@cknow.org> (Closes: #581508)

  * [doc]: Properly document 'Q' and 'q' keys for user interface in
           the Help file.  Thanks Sebastian Kapfer and Stéphane
           Aulery. (Closes: #242269)

- Translation updates:

  * Calatan (Closes: #332592)
  * Danish (Closes: #608593)
  * Dutch (Closes: #601672)
  * French (Closes: #631759)
  * German (Closes: #603589)
  * Greek (Closes: #606871)
  * Hungarian (Closes: #548609)
  * Japanese (Closes: #550451)
  * Polish (Closes: #657174)
  * Portuguese (Closes: #577995)
  * Russian (Closes: #559664)
  * Simplified Chinese (Closes: #594526, #566367)
  * Slovak (Closes: #559288, #653056)
  * Spanish (Closes: #564445)

[4/2/2011]
Version 0.6.4                               "Spring is sprung"

This version of aptitude requires apt 0.8 and will not build against
earlier releases.

- Security fixes:

  * [curses]: Fixed an arbitrary overwrite triggered by saving changes
              in the hierarchy editor, if the current user's home
              directory couldn't be determined. (Closes: #612034)

- Crashes and serious errors:

  * [all]: Don't crash when apt-xapian-index isn't installed. (Closes: #588089)

      - Interprets "~" as "?name(~)" instead of "?term(~)"

      - If the Xapian index isn't available, attempts to mimic its
        behavior to a first approximation: not perfectly, but enough
        to make ?term and ?term-prefix do something sensible.

  * [all]: Restore aptitude's old treatment of the auto flag, meaning
           that instead of clearing the flag when the user asks to
           upgrade a package, we leave it set.  Worked around a change
           in apt's behavior by forcibly preserving the auto flag's
           setting regardless of what pkgDepCache::MarkInstall thinks
           is right this week. (Closes: #622719)

- New features:

  * [curses]: Add a "source" grouping policy that groups packages by
              their source package name.  Thanks to Thadeu Lima de
              Sourza Cascardo for the patch, sorry it took so long to
              apply!  (Closes: #497206)

- Minor bugs:

  * [all]: Fixed the debug logging code to output TRACE-level
           messages.

  * [all]: Fixed the debug logging code to properly allow log levels
           to be disabled.

  * [all]: Fixed the resolver cost levels for installs and upgrades.

- Internal changes:

  * [all]: Include the current time and thread ID in all debug log
           messages.

  * [cmdline]: Refactor terminal handling to simplify some of the
               tests.

  * [qt]: Added the beginning of a Qt frontend, thanks to SoC 2010
          student Piotr Galiszewski.  Not really in a usable state
          yet.

  * [all]: Fixed build errors with gcc 4.6 (Closes: #624948)

- Cosmetic and UI bugs:

  * [cmdline]: Overhaul how download progress is displayed at the
               command-line.  Fixes problems on large terminals and
               should provide less glitchy behavior in general.

- Build system changes:

  * [all] Use $(srcdir) whenever $(wildcard) is used, so wildcarded
          files get picked up even when the build directory is not the
          source directory.

  * [all] Build src/generic/util before src/generic/apt (which depends
          on it).

  * [all] Multiple fixes to get VPATH builds working properly.

  * [doc]: Added a doc-fo target that builds (very rough) PDF
           documentation if you have fop installed.

  * [gtk] If the GTK+ frontend isn't built, don't try to build tests
          that require it.

[6/18/2010]
Version 0.6.3                               "Sunlight, moonshadow"

  This version of aptitude fixes some crashes that occurred when
  exiting the program and overhauls how progress is displayed from the
  command-line.

  aptitude now requires google-test and google-mock; it will work with
  newer versions of libept and older versions of boost; it no longer
  requires log4cxx.

- New features:

  * [cmdline] Modified the command-line progress counters so that
              they're erased when they complete instead of leaving
              cruft behind.

              The old behavior and appearance can be recovered by
              Aptitude::CmdLine::Progress::Retain-Completed and
              Aptitude::CmdLine::Progress::Percent-On-Right to "true".

- Crashes and serious errors:

  * [all] Ditching log4cxx will hopefully fix some of the crashes on
          exit that people were seeing.

- Cosmetic and UI bugs:

  * [cmdline, curses] Fixed the display of the archives associated
                      with a version so that duplicated archive names
                      are never displayed.

- Internal changes:

  * [gtk] Started working on a redesign of the GTK+ interface, both
          internal and external.  The internal half involves
          refactoring the code to better separate logic and
          presentation and to improve testability and code reuse.  The
          external half adds the groundwork for a redesign of how the
          UI is arranged at the top level.

          This code is very incomplete and currently disabled by
          default.

  * [cmdline] The progress changes noted above included some
              refactoring to make the command-line interface easier to
              unit test.  In particular, I created a terminal
              abstraction that could be stubbed out for the purposes
              of testing.  Currently this is only used for the
              progress code, but it's likely to become more widely
              used as time goes on.

- Changes for build dependencies:

  * [all] Stopped using log4cxx in favor of a homegrown module.

          We're really only using it for debug output, so its most
          powerful features aren't useful for aptitude.  At the same
          time, it appears to be behind some of the crashes on exit
          that users have reported, and it's never really integrated
          well into the program (the initialization process has always
          been a hack).  The new code is much better suited to
          aptitude's requirements.

  * [all] Added appropriate configure checks and conditionalization to
          support building against either the current ept release or
          the upcoming release. (Closes: #581009)

  * [all] Write a proper configure check to detect the calling
          convention used by boost::fusion::fold(); don't require
          Boost 1.42 any more.

- Build system changes:

  * [all] Added a build system based on scons.  scons supports fully
          parallel builds and variant builds without reconfiguration,
          which should speed up the build process significantly on
          multi-core machines.

  * [all] Switch from automake 1.9 to automake 1.11.

[4/21/2010]
Version 0.6.2.1                             "I didn't know it was a
                                             real zebra!"

- Crashes and serious errors:

  * Fixed a crash caused by being insufficiently careful about NULL
    pointers in the resolver. (Closes: #578344)

  * Boost 1.42 changed the order of arguments to fusion::fold(),
    breaking aptitude.  As an interim measure, I have modified
    configure to require 1.42 or higher, and fixed the argument order.
    The correct long-term fix here is to do a feature test to see
    which order fold expects its arguments in.

- Backwards compatibility fixes:

  * Restored the "conflict" safety level/tier.

  * Fixed a bug that meant that the old configuration option names
    (*-Tier instead of *-Level) could only be used to increase safety
    levels, not to decrease them.

- Internal changes:

  * Change the incremental_expression subsystem of the resolver to be
    fully robust against NULL pointers and write unit tests for it.

  * Reduced the number of explicit dependencies on log4cxx (using
    indirection), in case I decide to resolve the random crashes it
    causes by switching to some other framework or rolling my own.

[4/18/2010]
Version 0.6.2                               "A costly proposition"

- New features:

  + [all] Resolver tiers are dead, long live resolver costs.

          The resolver now supports a flexible system of multi-leveled
          costs, in place of the fairly rigid tiers of previous
          releases.  The default behavior emulates how tiers worked,
          but the resolver can also be configured with custom cost
          vectors by setting Aptitude::ProblemResolver::SolutionCost
          to something like this:

             canceled-actions + 2*removals, ignored-recommends, installs

          That says to minimize the number of packages kept at their
          current version plus twice the number of removals (i.e., a
          removal counts for two keeps).  Within that group, ties are
          broken by looking at the number of Recommends that were
          ignored, and within that group, ties are broken by looking
          at the number of new packages the resolver wants to install.

          In addition to custom cost vectors, resolver hints can be
          used to create completely custom costs.

          See the reference manual for full details.

          This is not optimized and I expect that pushing it to the
          limits will show off all sorts of exponential explosions.
          Have fun!

  + [cmdline] Implemented an "aptitude versions" command that I've
              been kicking around for a while, to display and search
              for individual package versions.  Documented in the
              manpage, but here are some highlights:

                $ aptitude versions apt
                i   0.7.25.3                         unstable     500
                p   0.7.26~exp3                      experimental 1

                $ aptitude versions '^apt$ ?installed'
                Package apt
                i   0.7.25.3                         unstable     500

                $ aptitude versions xserver-xorg udev
                Package udev:
                i   151-2                                         100
                p   151-3                            unstable     500

                Package xserver-xorg:
                i A 1:7.5+3                                       100
                p A 1:7.5+5                          unstable     500

                $ aptitude versions --group-by=source-package '?name(aptitude)'
                Source package aptitude:
                i   aptitude 0.6.1.5-2                            100
                p   aptitude 0.6.1.5-3               unstable     500
                i   aptitude-dbg 0.6.1.5-2                        100
                p   aptitude-dbg 0.6.1.5-3           unstable     500
                i   aptitude-doc-cs 0.6.1.5-2                     100
                p   aptitude-doc-cs 0.6.1.5-3        unstable     500
                (... many more lines of output snipped ...)

- Crashes and serious errors:

  + [cmdline] Don't crash if the user sets a rejection at the internal
              command-line via package name and version rather than
              using the new pick-by-numbers UI. (Closes: #567242)

  + [cmdline] Don't crash if the user asks to see information about a
              removal.

  + [cmdline] Don't crash in "aptitude changelog" when the package
              given on the command-line doesn't have a valid version
              (Closes: #576318).  Thinks to Dmitry Semyonov for the
              patch.

- Cosmetic and UI bugs:

  + [curses] Don't leave a download progress bar hanging around after
             downloading a changelog. (Closes: #566205)

- Internal changes:

  + [all] Replaced mktemp() with a custom function doing a similar
          thing (albeit with slightly better randomness).  This
          eliminates the spurious linker warning I've been ignoring
          for five years: the linker has no way to know that I only
          use mktemp() to create names in a mode 0700 directory, which
          is about the only way to use it safely.

[1/20/2010]
Version 0.6.1.5                             "All around the dependency bush,
                                             the monkey chased the weasel..."

- Crashes and serious errors:

  + [all] Changed the default resolver configuration so that removals
          and "safe" actions are grouped together.  Without this
          change, aptitude was being too conservative and failing to
          solve simple upgrades. (Closes: #565867)

          The safe-upgrade resolver is unaffected by this change,
          since it uses explicit constraints to prevent removals from
          being installed.

- Cosmetic and UI bugs:

  + [test] Eliminated a spurious error message that was being printed
           by the cppunit unit tests.

  + [curses] Fixed the progress display and error reporting for
             changelog downloads.

- Documentation:

  + [doc] Added a note in the manpage explaining the principles of the
          Linux command-line to hopefully forestall future bug reports
          telling me that the manpage for "aptitude search"
          contradicts the user manual.  (Closes: #566003)

[1/17/2010]
Version 0.6.1.4                             "You can't take the sky from me."

- New features:

  + [gtk] The status of each changelog download is now displayed in
          the space where that changelog will appear.

  + [cmdline] When aptitude displays a resolver solution, it now
              displays a number next to each entry in the solution.
              This number can be used to manipulate the corresponding
              entry (for instance, to reject it or to view information
              about it).  This makes it much more convenient to use
              the command-line resolver interactively.

- Crashes and serious errors:

  + [all] Be paranoid about the sign of file offsets (on some
          architectures they're apparently signed). (Closes: #557212)

  + [all] Fix various include and compilation errors revealed by the
          new version of g++ being stricter. (Closes: #531687, #560517)

  + [all] Use pthread_sigmask() instead of sigprocmask() on startup to
          avoid problems on architectures where sigprocmask() behaves
          poorly in multi-threaded processes. (Closes: #559980)

  + [gtk] Fix a startup crash caused by not properly protecting the
          call to Glib::thread_init(). (Closes: #555120)

- Cosmetic and UI bugs:

  + [cmdline] Document the flags that are shown after packages in the
              preview.

  + [cmdline] Instead of showing broken packages in their own group,
              show them in the group they would normally appear in but
              with a "b" flag.

              It was somewhat confusing that packages which were being
              installed but had broken dependencies showed up in the
              "broken" section instead of the "install" section.
              Packages that are unchanged and have broken dependencies
              won't show up in the preview any more, but they will
              show up just below it, in the list of packages with
              broken dependencies.

  + [all] Eliminate spurious error messages from log4cxx. (Closes: #557150)

- Internal changes:

  + [all] Download changelogs using the new internal download queue,
          not the download_manager system.  Fixes random crashes at
          shutdown.

  + [gtk] Wrote the first draft of some harness code that will
          underpin a redesign of the main window.  Currently this is
          unused.

[11/19/2009]
Version 0.6.1.3                             "Too many cooks put lots of
                                             beans in the soup."

- Build system fixes:

  + [doc] Fixed the Makefile for the Spanish translation of the
          documentation so that it honors DESTDIR.

[11/19/2009]
Version 0.6.1.2                             "I think I can, I think I can..."

- Crashes and serious erroors:

  + [all] Modified the new temporary file module so that it doesn't
          rely on the order in which global destructors run.  This was
          causing an abort when the program exited if it was built
          with optimizations.

- Internal changes:

  + [test] Wrote an additional unit test verifying that the program's
           temporary directory is really deleted when it exits.

[11/19/2009]
Version 0.6.1.1                             "Again with the bug-writing."

- Crashes and serious errors:

  + [test] Fixed the test code to actually compile against the new
           temp API (major oops there).

  + [all] Fixed the temporary directory code to create directories in
          $TMPDIR rather than ".".

[11/18/2009]
Version 0.6.1                               "Instant toll logging."

- New features:

  + [gtk] Support for automatically downloading screenshots from
          screenshot.debian.net.  Eventually the screenshots will
          probably show up in a few more places, such as the update
          preview and package lists (but this will require careful
          coding to only download screenshots that are visible).

- Internal changes:

  + [all] aptitude now has a generic global download queue.  This is
          actually implemented with the apt download queue object, but
          it runs all downloads in the background, integrates with
          aptitude's download cache, and provides support for getting
          status information on individual downloads and canceling
          them.

          This new queue is used to implement screenshot support.

  + [all] Overhauled how temporary files are created.  aptitude will
          now create only one entry in $TMPDIR, and it will make a
          stronger effort to delete all its temporary directories when
          it exits normally.  Abnormal exits (i.e., signals) will
          still leave cruft behind, but at least it's only one file
          and not dozens per run.

- Crashes and serious errors:

  + [all] Don't support trying to block the foreground thread while
          dependencies are solved; doing so is very deadlock-prone and
          was causing deadlocks in practice.

  + [all] Fix several places where the "why" code dereferenced version
          iterators without checking whether they were valid, causing
          a crash. (Closes: #546446)

  + [gtk] Fix several crashes in the resolver tab caused by trying to
          generate tooltips using invalid version objects.

  + [gtk] Properly disconnect signals from the background thread in
          the dashboard tab, instead of occasionally crashing when one
          is delivered after they should have been disconnected.

  + [gtk] Fix a potential deadlock that could have occurred if the
          main thread posted lots of thunks to itself.

- Minor bugs:

  + [all] The resolver will now ignore recommendations that are
          already unresolved on the system, rather than trying to fix
          them every time any dependency needs to be solved.
 	  (Closes: #556042)

  + [curses] Fix becoming root with the "su" protocol. (Closes: #552471)

- Cosmetic and UI bugs:

  + [all] Correct how we decide when the resolver is out of solutions.

  + [all] Work around a spurious error message generated by apt.
          (Closes: #526661)

  + [cmdline] The message that no packages are being installed,
              removed or upgraded is more accurate now.

  + [cmdline] Another preview is shown after the resolver runs even if
              -y was passed on the command-line.

  + [cmdline] Exit without prompting if the user tells the dependency
              solver to cancel all of their changes. (Closes: #556866)

  + [gtk] Fix a typo in one of the resolver tab's tooltips.

  + [gtk] Fix the resolver tab to only show a new solution when the
          user explicitly asked for one.

[10/25/2009]
Version 0.6.0.1                             "Who's laughing now?"

- Build system fixes:

  + [all] Actually distribute the auxiliary data for the unit tests.
          Hopefully this means that the unit tests can actually pass
          in the distributed tarfile.

[10/25/2009]
Version 0.6.0                               "Stick a fork in it,
					     it's done."
- Internal changes:

  + [all] The file cache now supports storing the last modification
          time of cached files.  Currently this isn't used (changelogs
          are assumed to be up-to-date anyway), but future code will
          need this.

  + [gtk] Factored out the common parts of the background threads that
          handle changelog downloading into a generic utility class.

- Minor bugs:

  + [all] Load the download cache in apt_init() instead of
          apt_preinit().  Avoids complaints from log4cxx if there are
          errors, and also ensures that we have a download cache even
          if the apt cache was closed and reopened.

  + [all] Add some missing #includes that showed up when NLS wasn't
          enabled.

- Build system fixes:

  + [all] Don't include files in POTFILES.in that aren't distributed.
          Hopefully this will prevent the unnecessary junk that was
          getting into the Debian diff.

[10/12/2009]
Version 0.5.9rc4                            "Trust me, you don't want
                                             to know about the spork."

- New features:

  + [all] The test to see whether a changelog is in aptitude's
          download cache now takes place in a background thread.

  + [gtk] When generating the upgrade summary, aptitude caches a
          parsed version of the portion of each changelog that's
          displayed.  This makes the changelogs show up much faster
          and with a lot less system load.

  + [gtk] The second tab in the upgrade view now displays information
          about the currently selected package, rather than its full
          changelog.

  + [gtk] "aptitude --version" prints the versions of GTK+ and GTK--
          that it was compiled against.

- Crashes and serious errors:

  + [all] Fix how the background dependency solver thread communicates
          with the foreground thread to eliminate at least one
          deadlock.

- Cosmetic and UI bugs:

  + [curses] Don't print a spurious warning if we get --no-gui when
             the GTK+ frontend was compiled out. (Closes: #550727)

- Build system fixes:

  + [gtk] Make "./configure --enable-gtk" enable GTK+ instead of
          disabling it.

[10/8/2009]
Version 0.5.9rc3                            "The stars, like little
                                             starry things..."

- New features:

  + [cmdline] Package versions can be chosen by codename as well as by
              archive. (Closes: #547707)

  + [all] Not exactly a new feature, but reverted from
          dpkg-parsechangelog to parsechangelog: both of them require
          extra dependencies, and parsechangelog is faster. (Closes:
          #546280)

- Crashes and serious errors:

  + [all] Don't crash if the Xapian database fails to load.  (Closes:
          #512998)

  + [all] Recognize --no-gui even in non-GUI builds, so switching to
          root can just always pass it. (Closes: #546406)

  + [all] Don't discard errors after dpkg fails. (Closes: #548879,
          #548889)

  + [gtk] Don't crash when displaying the file list of a package
          that's not installed.

- Cosmetic and UI bugs:

  + [curses] Block SIGWINCH by default so that cwidget can sigwait()
             on it. (Closes: #547212)

  + [cmdline] Mention build-dep in "aptitude help". (Closes: #547151)

  + [cmdline] Consistently use a full-stop at the end of "--help"
              lines.

  + [cmdline] Fix an incorrect message that stated that a package was
              not installable, rather than that it was not going to be
              installed.

  + [cmdline] Make --arch-only do what it should instead of the
              opposite. (Closes: #547266)

  + [gtk] Make the "hold" command hold packages instead of deleting
          them. (Closes: #549897)

  + [gtk] Use a single thread for all changelog downloads, to avoid
          spawning as many instances of parsechangelog as there are
          changelogs.

          I really should move the extraction of changelogs from the
          cache to a background thread as well; it takes ages to
          extract every last changelog if there are a lot, and I
          should be able to start parsing them as soon as the first
          one is extracted.

- Documentation:

  + [doc] Mention Get-Root-Command in the section on "becoming
          root". (Closes: #548657)

  + [doc] Correct the default value of Get-Root-Command to match the
          code. (Closes: #550057)

- Translation updates:

  + Danish (Closes: #546497)
  + French
  + Portuguese (Closes: #522445)
  + Russian (Closes: #535806)
  + Spanish


[9/9/2009]
Version 0.5.9rc2                            "Over five served."

- Crashes and serious errors:

  + [all] Fix a bug in the logic to filter package actions so that
          only actions initiated by apt's greedy resolver are
          affected, rather than all actions.

[9/8/2009]
Version 0.5.9rc1                            "The only way to win
                                             is not to play."

First release candidate for 0.6.0.  Due to the length of time it's
taken me to prepare this and to the new Debian release cycle, I'm
releasing 0.6.0 before the GTK+ interface is really complete; it's
still in an experimental state.  However, several of the other changes
in this release should really be rolled into the mainline before the
Debian release (particularly the improvements and optimizations to the
dependency solver).

This version disables the full-text Xapian search by default, although
it can still be accessed via ?term().

Version 0.5.9rc1

- New features:

  + [all] Internal file cache for auxiliary downloads, based on the
          binary file engine SQLite and the Boost zlib wrapper.  This
          will substantially speed up the GTK+ interface's startup
          time when it's just downloading the same thirty changelogs
          it was showing before, and will be even more helpful once
          aptitude can show screenshots.  Hopefully it will also
          reduce the load on the Debian network infrastructure.

  + [all] aptitude now uses the new hooks in apt to prevent the greedy
          resolver from removing packages or breaking holds.

          (Closes: #177374, #205049, #374353, #376802, #406506,
                   #4308                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    