cupt (0.2.3) unstable; urgency=medium

  * Cupt:
    - System:
      - Worker:
        - 'update_release_and_index_data': fixed downloading of non-compressed
          indexes.
        - 'update_release_and_index_data': fixed removing downloaded file after
          uncompressing.
        - 'update_release_and_index_data': remove the downloaded Release.gpg if
          signature verification failed and 'cupt::update::keep-bad-signatures'
          is false (this is the default setting) for the compatibility with APT.
          Thanks to Goswin von Brederlow <goswin-v-b@web.de>.
          (Closes: #533753). Urgency is set to 'medium' because of this fix.
        - 'update_release_and_index_data': download index file even if
          signature download/check failed.
      - Resolvers/Native:
        - Reworked solution rank system.
        - Dropped 'first-good' solution chooser. It can be mimicked by setting
          'max-solution-count' option to 1.
        - Run cleaning auto-installed packages also before resolving, aiming
          to reduce number of solutions resolver should work with.
        - Made "zero" line for actions 400 points less, affecting ordering
          solutions for processing for default 'fair' resolver type. Leads to
          significant (several times) speed-up for some cases. Makes possible
          to obtain at least one solution for some hard queries (like removing
          core system components).
        - Fixed erroneous auto-removing of some dependencies which were brought
          by 'satisfy' query.
    - Download:
      - Manager:
        - Enabled basic HTTPS protocol support.
        - IPC is rewritten using UNIX sockets instead of fifos.
      - Progress:
        - Changed speed-o-meter accuracy to 4 seconds (previous value was
          2 seconds).
      - Methods/Curl:
        - Added basic handling of transitive download errors.
    - Cache:
      - New free subroutine 'verify_signature'.
      - BinaryVersion:
        - [API break] Renamed field 'source_name' to 'source_package_name'.
        - Added a check for hash sums presence. Thanks to
          Goswin von Brederlow <goswin-v-b@web.de>.
        - Added a check for version string presence.
    - Config:
      - Added configuration option 'apt::cache-limit'. Thanks to
        Goswin von Brederlow <goswin-v-b@web.de>. (Closes: #533752)
      - New configuration option 'cupt::update::keep-bad-signatures'.
  * debian/control:
    - Bumped Standards-Version to 3.8.2, no changes needed.
    - Changed Homepage to wiki.debian.org/Cupt.

 -- Eugene V. Lyubimkin <jackyf.devel@gmail.com>  Sun, 21 Jun 2009 18:42:49 +0300

cupt (0.2.2) unstable; urgency=low

  * Cupt:
    - System:
      - Resolvers/Native:
        - When applying resolve actions, stick packages more aggressively.
      - Worker:
        - 'clean_archives': fixed callback before actual deletion.
        - 'clean_archives': delete only '.deb's.
        - 'clean_archives': fixed error message when deletion failed.
    - Core:
      - Comparing version strings: fixed comparison of versions like 'ab' and
        'ab5'.

 -- Eugene V. Lyubimkin <jackyf.devel@gmail.com>  Fri, 05 Jun 2009 19:40:19 +0300

cupt (0.2.1) unstable; urgency=low

  * cupt:
    - New 'screenshots' subcommand.
    - New 'clean' subcommand.
    - New 'autoclean' subcommand.
    - Implemented the option '--quiet'.
  * Cupt:
    - System:
      - Worker:
        - New 'clean_archives' method.
        - 'update_release_and_index_data': fixed deleting download progress
          immediately after end of all child processes.
        - 'update_release_and_index_data': don't download Packages/Sources
          when we know they are unchanged by provided hash sums.
      - Resolvers/Native:
        - Fixed dropping solutions by normalized score, not by the original one.
        - Fixed auto-removing of packages which resolver marked to change, but
          in the end they became unneeded anyway.
    - Cache:
      - BinaryVersion:
        - Always set 'source_version_string' field.
    - Config:
      - Added configuration option 'quiet'.
      - New configuration option 'debug::downloader'.
    - Download:
      - Progresses/Console:
        - Don't output progress meter when standard output is not a TTY.
      - Manager:
        - Worker thread: honor 'debug::downloader' configuration option.
        - Worker thread: fixed stucking in some complex conditions.

 -- Eugene V. Lyubimkin <jackyf.devel@gmail.com>  Tue, 02 Jun 2009 11:34:28 +0300

cupt (0.2.0) unstable; urgency=low

  * cupt:
    - New 'update' subcommand.
  * doc/cupt.1.pod:
    - Mentioned how to set list configuration option.
  * doc/cupt_howto.7.pod:
    - Added.
  * Cupt:
    - System:
      - Resolver*:
        - Merged an infrastructure to allow multiple resolvers to co-exist in
          future.
      - Worker:
        - [API break] 'do_actions' renamed to 'change_system'.
        - New method 'update_release_and_index_data'.
        - Honor 'dpkg::options' option.
    - Download:
      - Manager:
        - Worker thread: handle duplicated download requests that come when
          the original download request is not yet completed. This use case is
          possible 'update' action.
        - Worker thread: handle concurrent request of the same URI properly.
        - Worker thread: pass correct URI to download progress in case of
          ACKed download.
        - 'download' method: switched to modern interface of File::Temp,
          getting rid of compatibility one.
        - 'download' method: use POSIX::mkfifo instead of calling 'mkfifo'
          program.
        - 'download' method: return final download result back to worker
          thread only if this was requested.
        - New forwarding methods 'set_long_alias_for_uri' and
          'set_short_alias_for_uri'.
    - Cache:
      - 'get_pin' method: divided into 'get_original_apt_pin' and 'get_pin'
        methods.
      - New 'get_index_entries' method.
      - New 'get_path_of_release_list' method.
      - New 'get_path_of_index_list' method.
      - New 'get_download_entries_of_index_list' method.
      - New 'get_download_uri_of_release_list' method.
      - Honor 'debug::gpgv' config option to print some debug info while
        verifying signatures.
    - Config:
      - Added configuration option 'dpkg::options'.
      - New configuration option 'debug::gpgv'.
  * debian/control:
    - Recommended 'bzip2' for compressed indexes.
    - Suggested 'lzma' for compressed indexes.

 -- Eugene V. Lyubimkin <jackyf.devel@gmail.com>  Fri, 29 May 2009 22:29:13 +0300

cupt (0.1.4) unstable; urgency=low

  * cupt:
    - 'policy' subcommand:
      - Fixed old code referrings to 'gettext'.
    - Fixed skipping option-like arguments when searching for a command.
    - Implemented option '--show-reasons' for management actions.
    - New 'copyright' subcommand, similar to 'changelog' subcommand. Currently
      implemented only for installed packages and official Debian and Ubuntu
      repositories.
    - 'changelog', 'copyright' subcommands: work around dropping an epoch from
      version strings in links to Debian/Ubuntu pages.
    - The option '--install-unpacked' went away in favor of new
      '--no-install-unpacked' one, installing unpacked packages is now the
      default.
  * Cupt:
    - System:
      - Resolver:
        - Fixed erroneous autovivification of package entries which are not
          installed when checking for sticks of candidate versions than can
          satisfy forward dependencies.
        - Fixed wrong sharing 'fake satisfied' entries between package entries
          in different solution branches.
        - Honor 'cupt::resolver::track-reasons' configuration option.
      - Worker:
        - APT mangles ':' chars in names of deb archives. Cupt doesn't do the
          same. So, to pick up debs downloaded by libapt, worker now generates
          symlinks from 'right' names to 'mangled' names whenever possible.
        - Moved downloading stage to start of 'do_actions' method.
        - Reverted "Don't introduce action loops when uniting 'remove' and
          'unpack' actions".
        - Instead, tried to drop extraneous action interdepedencies by using and
          checking saved relation info and merging 'unpack' with 'configure'.
        - And, since unconditional merging 'unpack' with 'configure' can
          introduce another dependency loops, perform merge only if the
          operation can "eat" some dependencies.
        - In case some package have only 'configure' action without 'unpack',
          check for conflicts too in a straightforward way.
        - In the series of heterogeneous actions pass '--force-conflicts' to
          the '--unpack' and '--install'.
        - Generate stdin version 2 for the 'dpkg::pre-install-pkgs' hook for
          all hooks declared, not only for apt-listchanges.
        - Implemented the installs, downgrades and removes for the stdin
          version 2 for the 'dpkg::pre-install-pkgs' hook.
    - Config:
      - New configuration option 'cupt::resolver::track-reasons'.
    - Cache:
      - New free subroutine 'get_path_of_debian_copyright'.
      - When parsing release data, require first symbol of version to be digit.
  * doc:
    - cupt.1:
      - Renewed the list of supported APT configuration options.
      - Mentioned the way to send bug reports and IRC discussion channel.

 -- Eugene V. Lyubimkin <jackyf.devel@gmail.com>  Sun, 24 May 2009 12:02:24 +0300

cupt (0.1.3) unstable; urgency=low

  * debian/control:
    - Fixed misspelled Recommends 'liblocale-gettext-perl'.
    - Allow DM uploads.
  * cupt:
    - 'show' subcommand:
      - Show also source version if present.
    - 'changelog' subcommand:
      - Use source version for fetching remote changelogs if present. Fixes
        determining remote path for versions that had a binary-only rebuild(s).
    - 'policy' subcommand:
      - When called without arguments, print available Releases.
    - Exclude superfluous 'use Locale::gettext', Cupt::Core module do all
      needed manipulations to provide gettext. Thanks to
      David Broome <dbroome@gmail.com>. (Closes: #529167)
  * Cupt:
    - Cache:
      - New method 'get_binary_release_data'.
      - New method 'get_source_release_data'.
      - Include base URI in release info.
      - Installed versions of packages now have archive 'installed',
        codename 'now', vendor 'dpkg' in release info.
      - BinaryVersion:
        - New field 'source_package_version'. It's got filled when the source
          version for package differs from the binary one.
      - Pkg:
        - [API break] Renamed to 'Package'.
        - [API break] Renamed method 'versions' to 'get_versions'.
      - Skip 'Explanation: ' lines when parsing preferences. Thanks to
        Stefano Zacchiroli <zack@debian.org>.
    - Download:
      - Manager, Methods/*:
        - Changed "success" error message from '0' to ''.
      - Manager:
        - Worker thread and 'download' method: now worker thread returns info
          had the download been processed before or not, and 'download' won't
          run post-action for already processed downloads; this change should
          avoid future race conditions when the multiple downloads of the same
          file with enabled postprocessing were scheduled.
        - Worker thread and 'download' method: delay sending result to
          download progress before 'download' acked the result
          (i.e. run post-check for it).
      - Method:
        - New free subroutine 'get_acquire_suboption_for_uri' which honors
          per-host settings.
    - Config:
      - Per-host suboption of 'acquire::*::timeout' is now supported.
    - System:
      - Worker:
        - 'do_actions': perform dpkg lock (if needed) before all other
          prepare actions, not before modifying system.

 -- Eugene V. Lyubimkin <jackyf.devel@gmail.com>  Mon, 18 May 2009 00:28:09 +0300

cupt (0.1.2) experimental; urgency=low

  * cupt:
    - 'markauto'/'unmarkauto' subcommands:
      - Don't require worker at compilation stage. Speeds up compilation a bit.
    - Implemented '--no-remove' option for management actions.
    - Implemented '--no-auto-remove' option for management actions.
    - Selecting a version for binary package:
      - Allow '-' symbols in distribution names.
    - Properly output error when no command specified.
    - Use '#/usr/bin/env perl' for portability. Thanks to
      Michael Stapelberg <michael@stapelberg.de>.
    - New 'changelog' subcommand. Currently implemented only for installed
      packages and official Debian and Ubuntu repositories.
  * Cupt:
    - Core:
      - 'mydie', 'myerr', 'mywarn' subroutines now print to STDERR. Thanks to
        Stefano Zacchiroli <zack@debian.org>.
      - New subroutine 'is_version_string_native'.
    - Download:
      - Manager:
        - [API break] 'download' method: now one should specify array of URIs,
          not single URI for each download entry. Enables mirroring feature.
        - Advanced error message in download size check.
      - Methods/Curl:
        - Detect HTTP/FTP/HTTPS error codes.
        - Put HTTP/FTP/HTTPS response codes into error messages.
        - Don't put Curl internal error codes into error messages.
        - Follow HTTP redirects if the option
          'acquire::http::allow-redirects' is set to true.
      - Progress:
        - 'get_overall_download_percent': fixed division by zero when
          estimated total is zero.
      - Progresses/Console:
        - Enable auto-flushing when printing to the terminal.
    - System:
      - Worker:
        - Adapted to to changes in 'download' method of download manager.
        - Send also base URI to download progress so it can display it.
        - Give back transparent versioned 'remove','unpack','configure'
          actions and versionful check. Heavy hacks didn't guarantee full
          correctness, no reason to have them anymore.
        - Don't introduce action loops when uniting 'remove' and 'unpack'
          actions. This has to fix upgrading of packages containing
          'Pre-Depends' dependencies finally.
        - Put also installed and downgraded packages to package list version 1
          output for hooks. Dpkg-preconfigure should now work fully under Cupt.
        - Honor 'dpkg::pre-invoke' option.
        - Advanced error output for dpkg 'pre' actions.
        - Honor 'dpkg::post-invoke' option.
      - Resolver:
        - Use 'cupt::resolver::no-remove' option instead of 'no-remove' internal
          param.
        - Use 'cupt::resolver::type' option instead of 'resolver-type' internal
          param.
        - Check 'cupt::resolver::type' option for validity.
        - Use 'cupt::resolver::max-solution-count' option instead of
          'max-solution-cont' internal param.
        - [API break] Removed 'set_params' method, it is not needed anymore.
    - Cache:
      - Typo fix: 'incorrent' -> 'incorrect'. Thanks to
        Stefano Zacchiroli <zack@debian.org>.
      - Implemented 'easy' type of sources.list entry. Thanks to
        Stefano Zacchiroli <zack@debian.org>.
      - Don't choke on empty-for-us index files. Thanks to
        Stefano Zacchiroli <zack@debian.org>.
      - Fixed determining path for storing list file for indexes whose protocol
        doesn't have '//', e.g. 'file'.
        Thanks to Michael Stapelberg <michael@stapelberg.de>.
      - Warn, don't error, when description is not present in Release file.
      - New free subroutine 'get_path_of_debian_changelog'.
      - BinaryVersion:
        - [API break] Advanced return value for 'uris' method.
        - 'uris' method: filter duplicates.
    - Config:
      - New configuration option 'cupt::resolver::no-remove'.
      - New configuration option 'cupt::resolver::type'.
      - New configuration option 'cupt::resolver::max-solution-count'.
      - Changed default value for option
        'cupt::downloader::max-simultaneous-downloads' from 3 to 2.
      - Warn, don't error, on setting unknown list option, just like for
        regular options. Thanks to Stefano Zacchiroli <zack@debian.org>.
      - Skip broken parts of config files and warn, don't immediately stop.
      - Added the configuration option 'dpkg::pre-invoke'.
      - Added the configuration option 'dpkg::post-invoke'.
      - Added the configuration options 'rpm::pre-invoke' and
        'rpm::post-invoke'.
      - New configuration option 'acquire::http::allow-redirects'.

 -- Eugene V. Lyubimkin <jackyf.devel@gmail.com>  Sun, 10 May 2009 13:23:25 +0300

cupt (0.1.1.1) experimental; urgency=low

  * debian/control:
    - Put libwww-curl-perl to Build-Depends-Indep so t/file_method.t can load
      it.

 -- Eugene V. Lyubimkin <jackyf.devel@gmail.com>  Fri, 01 May 2009 01:49:41 +0300

cupt (0.1.1) experimental; urgency=low

  * doc/cupt.1.pod:
    - Added 'Author' section.
  * cupt:
    - Action preview prompt:
      - Generate additional warning when deleting essential packages.
      - Require typing the confirmation phrase for really dangerous actions.
      - Changed 'installed' -> 'INSTALLED' for untrusted packages warning.
    - 'satisfy' subcommand:
      - Now accepts sequences of relation expressions divided by commas within
        one argument.
    - 'config-dump' subcommand:
      - Added a mode to print a value of only one configuration option.
    - 'show' subcommand:
      - Changed 'PreDepends' -> 'Pre-Depends' in output.
    - Implemented option '--installed-only' for some query actions.
    - Implemented option '--download-only' for management actions.
  * Cupt:
    - Core:
      - 'human_readable_size_string': don't print fractional part for small
        float values.
    - Download:
      - Method, Methods/*:
        - [API break] 'sub_callback' in 'perform', added fetched bytes
          parameter for 'downloading' callback
        - Various documentation improvements.
      - Manager:
        - Road all progress requests through own pipe, not directly.
        - Update progress meter several times during a second.
        - Made more strings translatable.
      - Progress:
        - New method 'get_start_time'.
        - New method 'get_long_alias_for_uri'.
        - New method 'get_short_alias_for_uri'.
        - [API break] The control and flow logic was moved from
          Progresses/Console to 'progress' method.
        - New method 'hook' for subclasses.
        - New method 'get_overall_download_progress'.
        - New accessor/mutator 'download_entries'.
        - New method 'get_download_speed'.
        - New class-wide parameter variable 'o_download_speed_accuracy';
        - Various documentation improvements.
      - Progresses/Console:
        - Substituted obsoleted 'progress' method with new 'hook' method.
        - Fixed dangling, wrong-placed console cursor.
        - Also output download speed.
        - Output count of downloaded bytes for each package in
          human-readable form too (in addition to all size bytes count for
          package). In four words, "10829837/15.9MiB" -> '10.1MiB/15.9MiB'.
    - System:
      - Worker:
        - Honor 'cupt::worker::download-only' option.
        - Added 'debug::worker' config option to print some debug info.
        - Bump Pre-Depends requirements to 'configure' to make sure to not
          violate Debian Policy.
        - Merge all 'unpack' + 'configure' actions into 'install' action
          unconditionally.
        - Don't create fake 'remove' actions, just use existing 'install'
          ones instead. This should resolve problems with scheduling
          upgrading packages containing 'Pre-Depends'.
        - Made all inter-action relations unversioned, this should ensure that
          all 'install' -> 'remove' and 'remove' -> 'install' dependencies are
          not underestimated.
        - Ensure that download manager is destroyed before processing the
          result of downloads.
    - Config:
      - New option 'cupt::worker::download-only', defaults to false.
      - Use value of 'dir::bin::dpkg', not plain 'dpkg' to obtain
        archirecture.
      - The option 'gpgv::trustedkeyring' now defaults to
        '/var/lib/cupt/trusted.gpg'.
    - Cache:
      - Introduce the hack to copy APT's trusted keyring whenever possible to
        cupt's keyring place. It will be removed once key update mechanism
        would be implemented.
      - When checking signatures, generate proper error message if the keyring
        file doesn't exist.
      - Relation:
        - New free subroutine 'parse_relation_line' for parsing relation
          sequences.
  * debian/libcupt-perl.postinst:
    - Don't mess with /etc/apt/trusted.gpg for now. Instead copy it to cupt's
      own keyring place.
  * debian/libcupt-perl.prerm:
    - Introduced to clean up /var/lib/cupt directory.

 -- Eugene V. Lyubimkin <jackyf.devel@gmail.com>  Thu, 30 Apr 2009 23:19:35 +0300

cupt (0.1.0) experimental; urgency=low

  * Initial release. Dedicated to Pavel Chernyshov. Developers and advanced
    users only.

 -- Eugene V. Lyubimkin <jackyf.devel@gmail.com>  Tue, 07 Apr 2009 23:23:04 +0300
