apt (3.3.3) unstable; urgency=medium

  This release introduces initial interactive help output for apt(8)

  [ Julian Andres Klode ]
  * cmdline: add declarative option help printer
  * mirror: Scale fan-out with the square root of the number of files

  [ Simon Johnsson ]
  * cmdline: add command-specific help texts

  [ Zara Grigoryan ]
  * cmdline: render declarative options in command help
  * cmdline: mark option descriptions for translation
  * cmdline: refine command-specific help rendering

  [ Andriy Pysyk ]
  * Fix fuzzy entries in Ukrainian translation for APT 3.3.2 + terminology consistency improvements

 -- Julian Andres Klode <jak@debian.org>  Fri, 14 Aug 2026 17:51:56 +0200

apt (3.3.2) unstable; urgency=medium

  [ Julian Andres Klode ]
  * Document and test combined `build-dep --arch-only --indep-only`
  * ftparchive: fix heap overflow in ContentsExtract::DoItem
  * deb: guard against unsigned underflow when trimming control newlines
  * gpgv: don't advance past the null terminator in PushEntryWithKeyID
  * ftparchive: replace ContentsExtract's manual buffer with std::vector<char>
  * test: Limit valgrind to 1024 open files
  * hashes: Fix lingering OpenSSL error (Closes: #1140227)
  * test: use `gnurm` where available
  * Convert command-line option-parsing to declarative format
  * Fix crash when an aux file request is redirected
  * Reply to aux requests with the original URI if redirected
  * debian/apt-daily.service: Add timeouts.
    30 mins for apt-daily.service, 12 hours for apt-daily-upgrade.service
    should be sufficient. (LP: #2158000)

  [ наб ]
  * apt-transport-https(1): document host-specific SSLCert, SSLKey, Verify-Host with host:: instead of ::host

  [ David Kalnischkies ]
  * aptwebserver: Refuse client immediately on TLS handshake

  [ Américo Monteiro ]
  * Portuguese manpages translation update (Closes: #1133965)

  [ Frans Spiesschaert ]
  * Dutch program translation update (Closes: #1135221)
  * Dutch manpages translation update (Closes: #1135222)

  [ Remus-Gabriel Chelu ]
  * Romanian program translation update (Closes: #1139336)

  [ Mark Atwood ]
  * hashes: include <span> for std::span
  * hashes: don't crash on an unavailable digest
  * test: exercise hashes with a disabled digest

  [ dongshengyuan ]
  * Fix installing a deb with colon in path

  [ Simon Johnsson ]
  * apt-pkg: rename "OpenPGP signature verification failed" to "Signature verification failed"

  [ Andreas Noteng ]
  * Norwegian Bokmål (nb) translation update

  [ Temuri Doghonadze ]
  * po: Add Georgian translation

  [ Andriy Pysyk ]
  * Update Ukrainian translation for 3.3.1

  [ Mikhail Khachayants ]
  * srvrec: reject res_query answers bigger than our buffer

  [ Ramesh Adhikari ]
  * tagfile: fix unbounded backward scan in Fill()'s trailing-newline check

 -- Julian Andres Klode <juliank@ubuntu.com>  Thu, 30 Jul 2026 22:43:05 +0200

apt (3.3.1) unstable; urgency=medium

  [ Julian Andres Klode ]
  * solver3: Follow installed Suggests earlier
  * Fix `noexcept` as pointed out by gcc
  * Fix wrongful std::make_unique conversion
  * Fix regression in dirstream (Closes: #1136441)

  [ Varun Varma ]
  * Warn if auth.conf is unreadable (LP: #2150631)

 -- Julian Andres Klode <jak@debian.org>  Sun, 17 May 2026 21:21:50 +0200

apt (3.3.0) unstable; urgency=medium

  [ Anders Kaseorg ]
  * Fix Phased-Update-Percentage probability mistake

  [ Simon Johnsson ]
  * Scale history-list to screen width
  * Optimize ShortenCommand
  * Change GetKindString to not use .data() call

  [ Julian Andres Klode ]
  * Drop warning about unstable CLI interface.
    A specific CLI version can now be requested using the --cli-version
    flag, and old versions can be deprecated on a reasonable cadence.
    Therefore, a warning is no longer necessary.
  * hashes: Use std::span instead of std::basic_string_view
  * sources.list(5): Document Contact/Bugs/Description fields.
    Thanks to josch for the suggestion
  * Require sqv for builds on supported archs and !pkg.apt.nosqv

  [ Zheyu Shen ]
  * fix apt patterns parsing bug for pre-depends

  [ Herman Semenoff ]
  * apt: funcs called with a string literal consisting of a single character
  * apt-pkg/acquire: use range based for loop C++17
  * apt: push to emplace C++11 if possible
  * apt: modernize to make_unique C++17
  * apt-pkg: methods: fixed many minor memleaks

  [ наб ]
  * sources.list(5): th[r]ough typo

  [ Sebastian Krzyszkowiak ]
  * acquire-item: Fix up the error message on committing aborted transaction
  * pkgAcqMetaClearSig: Abort transaction when pkgAcquire::Run has been cancelled
    (Closes: #1078608)
  * pkgAcqMetaBase: Commit InRelease after other transaction items
    (Closes: #1078608)

  [ Daniel Lewart ]
  * Fix bug reference

 -- Julian Andres Klode <jak@debian.org>  Fri, 01 May 2026 18:40:52 +0200

apt (3.2.0) unstable; urgency=medium

  [ Julian Andres Klode ]
  * Release 3.2.0 stable release (LP: #2147412)
  * Copyright changes
  * Document inhibitors (see Bug#1129339)

  [ Frans Spiesschaert ]
  * Dutch program translation update (Closes: #1120336)
  * Dutch manpages translation update (Closes: #1120338)

  [ Américo Monteiro ]
  * Portuguese manpages translation update (Closes: #1119827)
  * Portuguese program translation update (Closes: #1127086)

 -- Julian Andres Klode <jak@debian.org>  Tue, 07 Apr 2026 11:02:39 +0200

apt (3.1.16) unstable; urgency=medium

  [ Andriy Pysyk ]
  * Update Ukrainian translation (uk.po)

  [ Julian Andres Klode ]
  * Introduce JSONL performance counter logging
  * solver3: Refactorings and some inline tweaking
  * solver3: Upgrade by source package

  [ Alessandro Astone ]
  * debian: Trigger apt-daily on AC plug event

  [ Nathan Pratta Teodosio ]
  * Prevent sleep while running dpkg.

  [ Ville Skyttä ]
  * bash-complete search patterns for more commands

 -- Julian Andres Klode <jak@debian.org>  Tue, 17 Feb 2026 11:36:12 +0100

apt (3.1.15) unstable; urgency=medium

  * solver3: Use classical watchers for propagation
    This may cause some changes to the solver result due to different
    tree traversal order.
  * Refactorings:
    - Use LiftedBool for Obsolete state
    - Erased items do not exist anymore

 -- Julian Andres Klode <jak@debian.org>  Sat, 31 Jan 2026 17:55:33 +0100

apt (3.1.14) unstable; urgency=medium

  * why: Render info about all providers on virtual packages
  * variants: Do not report unsupported variants in repositories

 -- Julian Andres Klode <jak@debian.org>  Fri, 23 Jan 2026 21:02:29 +0100

apt (3.1.13) unstable; urgency=medium

  [ Ville Skyttä ]
  * Grammar fixes
  * bash-complete basic list search patterns

  [ Daniel Lewart ]
  * Priority 1000 allows downgrades (Closes: #1016967)

  [ Simon Josefsson ]
  * Fix host-specific Acquire::https CAInfo/CRLFile example (Closes: #1112123)

  [ Christopher Bock ]
  * configure-index Acquire::ForceIPv4/6
  * completion: history

  [ Julian Andres Klode ]
  * Refactorings to the 3.0 solver:
    - Introduce a Lit type to hold literals
    - Refactor Assume(), Enqueue() from Var to Lit
    - Implement value(Lit) and use it
    - Rename Decision to LiftedBool
    - Rename key concepts to MiniSAT names
    - Refactor to use a namespace
    - Extract DependencySolver
    - Reorder the source code
    - Rename decision to assignment
    - Rename depth to level
    - Re-use existing error message code in Solve()
    - Remove Push() and refactor Solve()
    - Add a strange assertion
    - Modernize std::find() to std::ranges::contains
    - Ensure rule-of-3 memory safety for ContiguousCacheMap
  * macros: Introduce must_succeed() macro
    This is like assert() but guaranteed to run its argument,
    and only run the argument once, so you can must_succeed(foo())

  [ Johannes Schauer Marin Rodrigues ]
  * apt-private/private-download.cc: support unlimited space tmpfs

  [ Aindriú Mac Giolla Eoin ]
  * Updated Irish translation based on Release 3.1.12

 -- Julian Andres Klode <jak@debian.org>  Mon, 05 Jan 2026 22:56:34 +0100

apt (3.1.12) unstable; urgency=medium

  [ Ruoyu Zhong ]
  * Fix missing includes

  [ Julian Andres Klode ]
  * Correctly copy provided version in m-a lazy-init (Closes: #1120463)
  * Special cow
  * weakptr: Simplify destructor to use range-based for
  * Improve documentation for apt --cli-version

 -- Julian Andres Klode <jak@debian.org>  Mon, 10 Nov 2025 11:35:04 +0100

apt (3.1.11) unstable; urgency=medium

  * Adjust test cases to treat 3.0 as default APT_SOLVER if not set
  * tests: Do not skip tests for --solver internal
  * test: Correctly skip tests when not using -j
  * Revert "depcache: Allow changing multi-arch versions for removed siblings"

 -- Julian Andres Klode <jak@debian.org>  Sun, 26 Oct 2025 09:31:49 +0100

apt (3.1.10) unstable; urgency=medium

  [ Julian Andres Klode ]
  * Record varying defaults based on cli-version, rather than binary
  * Implement architecture variants
  * Enable the new solver by default in 0.31, 1.21, 2.11, 3.1, and fix bugs:
    - solver3: Eagerly satisfy previously satisfied Recommends
    - solver3: Do not lose notion that we backtracked (LP: #2129819)
    - solver3: Allow removing manually installed packages
    - depcache: Allow changing multi-arch versions for removed siblings

  [ Aindriú Mac Giolla Eoin ]
  * Add Irish translation

 -- Julian Andres Klode <jak@debian.org>  Sat, 25 Oct 2025 22:52:48 +0200

apt (3.1.9) unstable; urgency=medium

  [ Gyorgy Sarvari ]
  * fix compiling with musl

  [ Simon Johnsson ]
  * Fix history command error when no ID was given

  [ Jochen Sprickerhof ]
  * Let APT::Get::Mark-Auto satisfy APT::Get::Build-Dep-Automatic
    (Closes: #973260)

  [ Julian Andres Klode ]
  * ExecFork: Use close_range() if available
  * Correctly append or remove FD_CLOEXEC
  * French program translation update (Closes: #1116322)

  [ Igor Támara ]
  * Spanish translation update (Closes: #1110853)

  [ Frans Spiesschaert ]
  * Dutch program translation update (Closes: #1115366)
  * Dutch manpages translation update (Closes: #1115367)

 -- Julian Andres Klode <juliank@ubuntu.com>  Tue, 21 Oct 2025 19:27:47 +0200

apt (3.1.8) unstable; urgency=medium

  * Move "Tried to start delayed item […], but failed" to debugging
    (Closes: #1111554)

 -- Julian Andres Klode <jak@debian.org>  Sat, 04 Oct 2025 14:29:54 +0200

apt (3.1.7) unstable; urgency=medium

  [ Julian Andres Klode ]
  * test-history: Adjust for as-installed testing

  [ Simon Johnsson ]
  * Add history undo, redo, and rollback features

 -- Julian Andres Klode <jak@debian.org>  Thu, 02 Oct 2025 16:48:11 +0200

apt (3.1.6) unstable; urgency=medium

  [ David Kalnischkies ]
  * Show command in test failure messages if default is overridden
  * Support kernel images with + in uname in kernel autoremove test

  [ Simon Johnsson ]
  * History Command and Parsing

 -- Julian Andres Klode <jak@debian.org>  Fri, 26 Sep 2025 18:38:54 +0200

apt (3.1.5) unstable; urgency=medium

  [ Christopher Bock ]
  * completion: apt why/why-not

  [ Julian Andres Klode ]
  * doc: Remove <filename> inside <arg>
  * solver3: Sort dependency targets against current alternative
  * solver3: Allow any downloadable version to mark a package as not obsolete
  * debListParser: Cache `essential` and `myArch` more
  * edsp: Clear architecture cache
  * edsp: Do not skip lines (fixes Architecture reading)

  [ Américo Monteiro ]
  * Portuguese manpages translation update (Closes: #1111124)

  [ Helge Kreutzmann ]
  * German program translation update (Closes: #1111875)

  [ Tianyu Chen ]
  * Update Simplified Chinese translation

  [ Biswapriyo Nath ]
  * Fix indentation compiler warning with clang

 -- Julian Andres Klode <jak@debian.org>  Tue, 26 Aug 2025 21:02:54 +0200

apt (3.1.4) unstable; urgency=medium

  * Upload to unstable 

 -- Julian Andres Klode <juliank@ubuntu.com>  Mon, 11 Aug 2025 17:27:45 +0200

apt (3.1.3) experimental; urgency=medium

  [ Biswapriyo Nath ]
  * Include standard headers to fix clang compiler error

  [ Julian Andres Klode ]
  * Fix stuck acquire queues on partial server errors (LP: #2003851)
  * tls: Do not trigger assertion after closing connection (Closes: #1107827)
  * German translation update (Closes: #1106116)

  [ Américo Monteiro ]
  * Portuguese manpages translation update (Closes: #1103640)

  [ bubub ]
  * French manpages translation update (Closes: #1103760)

  [ Frans Spiesschaert ]
  * Dutch program translation update (Closes: #1104312)
  * Dutch manpages translation update (Closes: #1104313)

  [ Miroslav Kure ]
  * Czech program translation update (Closes: #1106155)

 -- Julian Andres Klode <juliank@ubuntu.com>  Mon, 11 Aug 2025 17:27:43 +0200

apt (3.1.2) experimental; urgency=medium

  * solver3: Avoid FTBFS with g++ 14.2 on arm{el,hf}

 -- Julian Andres Klode <jak@debian.org>  Tue, 10 Jun 2025 21:16:14 +0200

apt (3.1.1) experimental; urgency=medium

  * Bump CMAKE_CXX_STANDARD to 23 and fix code
  * solver3: Assume manual packages. This orders all the manually
    installed packages by preference (as we do for providers),
    and ensures that we will not remove manual packages if we
    do not need to.
  * solver3: Merge intersecting dependencies (LP: #2111792)
    When seeing dependencies on the same package, such as
        Depends: a (>= 1), a (<< 2)
    merge them into a single depends so that both of them
    are satisfied by the same package, rather than say
        Package: a-0, Provides: a (= 0) - satisfies a (<< 2)
        Package: a-2, Provides: a (= 1) - satisfies a (>= 1)
  * solver3: Ignore Architecture: all for obsoleted-by.
    This avoids a problem in unstable/proposed setups where binaries
    are not published together for all architectures, and foo:native
    could be considered obsolete because of a newer bar:all.
  * solver3: Filter installed Recommends
    A currently satisfied Recommends is filtered to the same packages
    it is currently satisfied by, ensuring that say, removing a will
    not install a `b` to keep a Recommends: a | b satisfied.
  * solver3: Minor refactorings
    - Remove Work::choice
    - solver3: Allow CompareProviders3 with empty package
  * solver3: Minor bug fixes
    - Handle failed assumption in Pop()
    - If no choice was made nothing to invert
      (avoid trying to "undo" the root assignment)
    - Initialize startTime if not set in Pop()
    - solver3: Explicitly declare and define ~Solver
  * Avoid cast alignment warning in cache string view

 -- Julian Andres Klode <jak@debian.org>  Tue, 10 Jun 2025 17:39:38 +0200

apt (3.1.0) experimental; urgency=medium

  [ Julian Andres Klode ]
  * debian/NEWS: Document new requirements on trusted.gpg.d (Closes: #1104320)
  * test: Fix test-skipped regression in 3.0.1
  * test: Do not use host's sequoia config
  * Pass --check to msgfmt and fix broken format strings
  * Add 'Include'/'Exclude' options to limit packages used from a repository
    'Include' allows limiting a repository to a allowlist of packages,
    'Exclude' allows removing packages from a repository.
  * Introduce apt why, apt why-not
  * Update translation templates and merge translations
  * Ubuntu: Enable 3.0 solver by default in apt CLI tools

  [ Herman Semenov ]
  * apt-pkg: fixed type comparison in 64bit systems using memsize cast

  [ Walter Lozano ]
  * Fix error handling with getline

  [ Guillem Jover ]
  * dselect: Add https support
  * dselect: Pass available file from stdin to dpkg --update-avail
  * dselect: Refactor bold printing into its own function
  * dselect: Use strict and warnings pragmas
  * dselect: Use Term::ANSIColor instead of forking setterm
  * dselect: Use qw() instead of lists of quoted strings
  * dselect: Replaces obsolete file comment header with copyright and SPDX marker

  [ Simon McVittie ]
  * apt_preferences(5): Specify the order in which files are parsed
  * sources.list(5): Explicitly say what the precedence order is

  [ Max Coplan ]
  * 💬 Recommend use of `apt update` over `apt-get update`

  [ David Kalnischkies ]
  * Include everything in our pkg-config autopkgtest

  [ Demi M. Obenour ]
  * Fail on stdio errors

 -- Julian Andres Klode <jak@debian.org>  Mon, 19 May 2025 19:13:54 +0200

apt (3.0.1) unstable; urgency=medium

  [ Laurent Bigonville ]
  * Remove boggus option in French manpage translation

  [ Julian Andres Klode ]
  * Update Sequoia crypto policy.
    Move our cut-offs to February to align with Sequoia, and cut-off more:
    - 2024-02: DSA keys retroactively (align with GnuPG config)
    - 2026-02: SHA224 hashes
    - 2028-02: Brainpool keys (align closer with GnuPG backend)
    - 2030-02: RSA2048 keys
    These algorithms will not be valid starting on those cut-off dates.
  * sqv: Refactor execution of sqv into separate method
  * sqv: Warn about signatures that will be rejected by policy within a year

 -- Julian Andres Klode <jak@debian.org>  Fri, 25 Apr 2025 23:08:27 +0200

apt (3.0.0) unstable; urgency=medium

  [ Julian Andres Klode ]
  * And so it begins: Bump the version to 3.0 to mark the start
    of a stable series, dedicated to Steve Langasek.
  * symbols: Update to 2.9.35
  * solver3: Consider more upgrades more costly when not upgrading
    (LP: #2105395)

  [ Frans Spiesschaert ]
  * Dutch manpages translation update (Closes: #1100801)
  * Dutch program translation update (Closes: #1100807)

  [ Rafael Fontenelle ]
  * Brazilian Portuguese program translation update (Closes: #1100964)

  [ Remus-Gabriel Chelu ]
  * Romanian program translation update (Closes: #1101535)

  [ Carles Pina i Estany ]
  * Catalan program translation update

  [ Helge Kreutzmann ]
  * German program translation update (Closes: #1100550)

  [ bubub ]
  * French program translation update (Closes: #1100708)

 -- Julian Andres Klode <jak@debian.org>  Fri, 04 Apr 2025 22:32:19 +0200

apt (2.9.35) unstable; urgency=medium

  * Respect custom LESS/MORE/LV variables (LP: #2103921)
  * solver3: Correctly deb822-escape error message in evaluation report
    (LP: #2104276)
  * pager: Also set SMK in LESS, fix LV=C to be LV=-c (LP: #2104280)

 -- Julian Andres Klode <jak@debian.org>  Thu, 27 Mar 2025 22:52:21 +0100

apt (2.9.34) unstable; urgency=medium

  [ Julian Andres Klode ]
  * Fix uploads to errors.ubuntu.com with whoopsie:
    - zstd: The compressor level should be -6, not -19
    - edsp: Add functionality to only write relevant packages
    - solver evaluation: write minimized solver dumps
    - edsp: Dump minimized Dir::Log::Solver logs
    - solver3: Use zstd-compressed, base64-encoded dumps
    - solver3: Avoid empty ErrorMessage field in evaluation crash report
  * solver3: Only hide ver->pkg clauses, not pkg->ver version selection ones
    - previously we hid version information vital to the understanding
    - thanks to Helmut Grohne for the report
  * solver3: Record manual flag before discovering packages (LP: #2102720)
  * solver3: Handle previously satisfied Suggests last and do not install
    new packages for Suggests (LP: #2103556)

  [ Johannes Schauer Marin Rodrigues ]
  * apt-pkg/solver3.h: avoid static_assert(false)
  * cmdline/apt-get.cc: emit Signed-By field and support $(SIGNED_BY) in
    apt-get indextargets --format

  [ Christopher Bock ]
  * doc/sources.list.5.xml: snapshot infos

 -- Julian Andres Klode <jak@debian.org>  Thu, 20 Mar 2025 22:45:30 +0100

apt (2.9.33) unstable; urgency=medium

  * 3.0 solver updates:
    - Fix detection of satisfied recommends for pkg variables
    - Print correct reason when registering dependency
    - Correctly determine 'same' or groups (a|c was same as a|b...)
    - Fix Recommends/Suggests vs Enhances confusion (LP: #2101800)
    - Fix test-resolve-by-keep-new-recommend
  * edsp: Set Forbid-New-Install/Forbid-Remove: no if other is set such
    that `apt upgrade` dumps are different from `apt-get upgrade` ones
    and can be correctly reproduced (as the one in the LP bug above).
  * test: Fix some weird editing artefact introduced in 2.9.32 causing
    a test to effectively be skipped.

 -- Julian Andres Klode <jak@debian.org>  Wed, 12 Mar 2025 19:22:59 +0100

apt (2.9.32) unstable; urgency=medium

  * Rewordings and documentation updates:
    - Add doc/design/install.md: Installation design
    - Replace "GPG error" with "OpenPGP signature verification failed"
  * Bug fix: Correctly detect obsolete packages in EDSP
    - refactor obsolete checks to use VerFileIterator::Downloadable()
    - Consider 0-size debs not downloadable, set a size in EDSP
    - edsp: Write 'Size' to the EDSP files
  * UX: Produce more human-readable dependency errors in 3.0 solver.
    - test: Grep continuation lines in error messages
    - solver3: Simplify Var pointer tagging
    - solver3: cleanup operators for Var
    - solver3: Support pretty printing clauses
    - solver3: Verbose error messages
    The output now has multiple lines, prints the underlying concrete
    dependency (foo Depends bar), and prints paths not taken.
  * Bug fixes:
    - solver3: bestReason: Only find actual assignments [i.e. when the
      path to a decision is determined for printing, we sometimes picked
      assignments with the wrong polarity, e.g. when determining "why not foo"
      in "foo Conflicts mail-transport-agent" we might have picked a
      decision "not exim4" rather than a choice "postfix"].
    - solver3: Do not prefer new installs over manually installed obsoletes.
      (LP: #2100247) - We still try dependencies with obsolete packages
      last, even if manual, so a "Depends: new" is processed before
      "Depends: new | obsolete" either way.
  * Feature: Introduce transaction support and upgrade count for pkgDepCache.
    - Introduce pkgDepCache::Transaction for transactional depcache updates
    - depcache: Add a new UpgradeCount() member
  * Feature: Fall back to the 3.0 solver if internal failed, or apport is
    installed.
    - Evaluate and fall back to the 3.0 solver
    - Print --solver 3.0 explanation if both internal and it failed
  * Both features have been shipped for several weeks in Ubuntu already and
    received minor bug fixes and additional test cases.

 -- Julian Andres Klode <jak@debian.org>  Sun, 09 Mar 2025 18:19:14 +0100

apt (2.9.31) unstable; urgency=medium

  [ Julian Andres Klode ]
  * edsp: Use buffered writes for EDSP dumps
  * strutl: Add missing #include <cstdint> [gcc 15] (Closes: #1096322)
  * refactor: Deduplicate and Move SectionInSubTree to Configuration
  * solver3: Fix test-apt-move-and-forget-manual-sections
  * solver3: Fix error stack handling
  * test: Improve output cleaning for solver progress
  * Fix crash in VersionExtra using --with-source etc (Closes: #1098702)
  * test-apt-ftparchive-cachedb: Avoid race condition in test case

  [ Miroslav Kure ]
  * Czech program translation update (Closes: #1095976)

  [ Helge Kreutzmann ]
  * German program translation update (Closes: #1098456)
  * German manpage translation update (Closes: #1099118)

  [ David Kalnischkies ]
  * apt-ftparchive: Do not output locale dependent dsc file size

  [ Алексей Шилин ]
  * Russian translation update (Closes: #1098937)

 -- Julian Andres Klode <jak@debian.org>  Fri, 28 Feb 2025 17:49:31 +0100

apt (2.9.30) unstable; urgency=medium

  * Upload libapt-pkg 7.0 ABI transition to unstable:
    - Use smart pointers in a whole bunch of places (probably only an API break)
    - Add a version script to hide any standard library symbols
    - Remove the functions marked as deprecated, such as PrintStatus and _strtabexpand
    - Introduce SourceVersion objects in the cache
    - Migrate from APT::StringView to std::string view and change a bunch of
      functions from std::string to std::string_view.
      Thanks to наб for the merge requests, very appreciated, that was a lot
      of busywork.
    Several other changes were already queued in the previous releases in
    #ifdef, please have a look at them.

 -- Julian Andres Klode <jak@debian.org>  Sun, 16 Feb 2025 17:58:07 +0100

apt (2.9.29) unstable; urgency=medium

  [ Helge Kreutzmann ]
  * German program translation update (Closes: #1052411)
  * German program translation update (Closes: #1095681)

  [ Frans Spiesschaert ]
  * Dutch program translation update (Closes: #1095409)
  * Dutch manpages translation update (Closes: #1095411)

  [ Jean-Pierre Giraud ]
  * French manpage translation update (Closes: #1088326, #1050876)

  [ Arnaud Rebillout ]
  * test: Fix skipping test cases

  [ Peter Krefting ]
  * Swedish program translation update (Closes: #1070029)

  [ Julian Andres Klode ]
  * Add DepIterator::IsSatisfied(PkgIterator)
  * test: Support comments in --skip/--only files
  * Major 3.0 solver update, improving version selection, unit propagation,
    and as a result significantly performance (2x for apt-tests). Also new:
    - Phased updates are now supported
    - The number of broken test cases is down from 31 to 9
    - dist-upgrade now installs Essential packages
    - The order of alternatives in or groups is now better preserved
    - Recommends for upgrades of installed dependencies are now upgraded
      to Depends if they are new or previously satisfied; to avoid breaking
      Recommends or introducing unsatisfied Recommends in an upgrade.
    - A time out of 10s has been added that is checked whenever the solver
      backtracks to prevent practically infinite runtime.

 -- Julian Andres Klode <jak@debian.org>  Fri, 14 Feb 2025 19:42:43 +0100

apt (2.9.28) unstable; urgency=medium

  [ Julian Andres Klode ]
  * modernize-sources: Avoid opening /dev/stdout for simulate
  * dpkg: Pass --admindir if a different one is specified; fixes issue
    where foreign architectures from the host were used when Dir is set.
  * Various updates to the '3.0' solver: Particularly it now has a clause
    database for reals rather than rediscovering clauses when backtracking.
    - refactor: Drop unused code, annotate [[nodiscard]] and const, simplify,
      extract functions, and particularly introduce the Clause class.
    - algorithm: Simplify work ordering. This may cause some changes in
      how dependencies are resolved.
    - algorithm: Replace PropagateInstall() with Discover() and then
      propagate based on the stored clauses. Clauses are discovered
      from package dependencies and persistent, i.e. they have no
      decision level associated. Discovery is incremental so far.
    - algorithm: Support comparing packages and versions, such that
      we can store both package and version variables in a clause.
    - algorithm: Use a package clause for optional roots. This allows
      deciding to keep an automatically installed package installed,
      without having to decide the version (and hence enqueue common
      dependencies first).
    - performance: Cache calls to policy.
    - performance: Cache all configuration calls
    - performance: Point to stored clauses, do not copy them
    - performance: Avoid std::vector for statically sized arrays. Due
      to adding libstdc++ assertions, vector range checks accounted
      for up to 20% of solver runtime.

  [ Christopher Bock ]
  * completion: Add modernize-sources (Closes: #1094904)
  * edit-sources: don't force .list

 -- Julian Andres Klode <jak@debian.org>  Fri, 07 Feb 2025 21:00:48 +0100

apt (2.9.27) unstable; urgency=medium

  [ Julian Andres Klode ]
  * Symbols: Update for 2.9.23/2.9.25
  * Updates for the '3.0' solver:
    - Soft unit propagation for optional items
    - Do not accidentally solve new Recommends before hard dependencies
    - Use a propagation queue instead of recursively propagating facts
  * Correctly calculate kernel size in /boot (Closes: #1085184)
  * Measure BootSize as integer

  [ Boyuan Yang ]
  * po/zh_CN.po: Refresh Simplified Chinese translation for apt

  [ Rafael Fontenelle ]
  * Brazilian Portuguese program translation update (Closes: #1092563)

  [ David Kalnischkies ]
  * Cleanups and fixes for cache counters/size fields:
    - Do not overflow ver/desc<->file relation counters
    - Drop unused description size info from binary cache
    - Drop unused version stanza size info from binary cache
    - Do not create descriptions structs for each architecture
    - Record all available sources for descriptions
    - Include Extra in the size counted for Version struct

  [ Samuel Thibault ]
  * Also support debian-ports modernization

 -- Julian Andres Klode <jak@debian.org>  Mon, 03 Feb 2025 13:44:58 +0100

apt (2.9.26) unstable; urgency=medium

  [ Sam Hartman ]
  * Fix regression that prevented sending intermediate client certificates

  [ Andreas Rönnquist ]
  * apt-secure manual page is in manual section 8

  [ Julian Andres Klode ]
  * apt: Introduce the modernize-sources command
  * Make notices about .list sources without signed-by less obnoxious
    You get a single line telling you about modernize-sources now, unless
    you run --audit (or have deb822 files without Signed-By).
  * Documentation updates:
    - Deprecate legacy one-line-style format harder. Removal not before 2029.
    - Set signed-by/Signed-By in sources.list(5) short examples for Debian, Ubuntu
    - Update Debian, Ubuntu example default sources to best practices:
      We now ship debian.sources/ubuntu.sources instead of sources.list
    - Update codenames for trixie, plucky as stable

 -- Julian Andres Klode <jak@debian.org>  Tue, 28 Jan 2025 19:49:53 +0100

apt (2.9.25) unstable; urgency=medium

  * sqv, gpgv: Do not fail if Dir::Etc::Trusted is set and trusted.gpg.d is missing

 -- Julian Andres Klode <jak@debian.org>  Wed, 22 Jan 2025 11:07:01 +0100

apt (2.9.24) unstable; urgency=medium

  * gitlab-ci: Use platform: linux/i386 instead of i386/debian image
  * Warn about missing Signed-By in .list format, this deprecates
    /etc/apt/trusted.gpg.d.
  * Remove superseded warning about trusted.gpg fallback
  * Unset Dir::Etc::trusted, this removes /etc/apt/trusted.gpg from
    the trusted path.

 -- Julian Andres Klode <jak@debian.org>  Tue, 21 Jan 2025 12:17:24 +0100

apt (2.9.23) unstable; urgency=high

  [ David Kalnischkies ]
  * Write Pre-Depends with a dash again in EDSP (Closes: #1093254)
  * Grep for more evil in test as a signature can contain evil

  [ Julian Andres Klode ]
  * Workaround gcc 14.2.0-9 regression in no-tree-slp-vectorize on Graviton;
    this prevented https connections from working.

 -- Julian Andres Klode <jak@debian.org>  Fri, 17 Jan 2025 20:37:48 +0100

apt (2.9.22) unstable; urgency=medium

  [ Balint Reczey ]
  * apt-pkg/deb/debsystem.cc: Fall back to "dpkg" when Dir::Bin::dpkg is not found

  [ Julian Andres Klode ]
  * debian/changelog: v3 signature packet, not v3 subkey
  * Ensure we can build with APT_PKG_ABI > 601
  * ssl: Set an error when we receive SSL_ERROR_SYSCALL
  * ssl: Explictly return -1 (error) or 0 (server closed connection)
  * abicheck: Add some workarounds to avoid errors
  * t/i/test-method-gpgv-legacy-keyring: Switch to http, extend
  * proxy: Avoids triggering bounds check in std::string_view
  * methods/connect: Avoid unused argument warning

  [ David Kalnischkies ]
  * Resolve autopkgtest failures caused by dpkg >= 1.22.12 (Closes: #1092090)
  * Try stomping a little less on global macro namespace
  * Add pkgCache::{Priority,DepType}_NoL10n to avoid duplication
  * Replaces macros with C++ attributes: APT_OVERRIDE, APT_ARRAY_SIZE, APT_NORETURN,
    APT_DEPRECATED, APT_UNUSED, APT_MUSTCHECK, APT_IGNORE_DEPRECATED
  * Drop SourceListWarnings::NonFreeFirmware messages
  * Remove leftovers of the apt-key removal
  * Move apt-extractexamples desc line from apt-utils to apt (Closes: #1091344)
  * Remove leftovers from ftp and rsh/ssh methods removal
  * Change multi sources.list entry example from FTP to HTTPS

  [ Sergio Durigan Junior ]
  * d/t/control: Don't depend on gdb-minimal.

 -- Julian Andres Klode <jak@debian.org>  Tue, 14 Jan 2025 18:33:08 +0100

apt (2.9.21) unstable; urgency=medium

  [ Simon McVittie ]
  * sources.list(5): Suggest VENDOR.sources for new systems

  [ Guillem Jover ]
  * Remove non-US leftovers in code and documentation
  * Remove obsolete references to ftp://ftp.debian.org
  * Use deb.debian.org instead of ftp.debian.org URLs

  [ Julian Andres Klode ]
  * Extend v3 signature packet expiry to 2026, owing to OBS use
  * sqv: Avoid propagating errors between files (Closes: #1091679)
  * http: seccomp: Allow reading directories (Closes: #1091351)
  * test: Check "${METHODSDIR}/sqv" not "/usr/bin/sqv"
  * Unfuzzy documentation translations
  * Run update-po4a

 -- Julian Andres Klode <jak@debian.org>  Wed, 01 Jan 2025 22:48:55 +0100

apt (2.9.20) unstable; urgency=medium

  * symbols: Merge 2.9.19 and fix version for InsertErrno
  * Re-include std:: symbols in the symbols file as optional again

 -- Julian Andres Klode <jak@debian.org>  Sat, 28 Dec 2024 22:59:50 +0100

apt (2.9.19) unstable; urgency=medium

  * Replace GnuTLS and gcrypt with OpenSSL
  * Replace GnuPG with Sequoia on supported Debian platforms
    - methods: Add new sqv method
    - debian: Add default policy to allow SHA-1 self-signatures until 2026
    - debian: Plug sqv into the package build
  * Smaller bits:
    - apt-helper: Add a hash-file helper to debug file hashing
    - Use sq in the test suite, remove apt-key
    - abicheck: Add symbol-merge.py helper
    - Symbols: Merge stable, noble, testing, unstable

 -- Julian Andres Klode <jak@debian.org>  Mon, 23 Dec 2024 12:16:19 +0100

apt (2.9.18) unstable; urgency=medium

  * Fix out-of-bounds read in `apt show :` (Closes: #1090068)
  * Introduce git-like automatic pager for apt(8), emulating git behavior.
    It is enabled for the show, list, search, policy, showsrc commands.
    The pager can be set using APT_PAGER or PAGER and defaults to `pager`
  * Add initial pinning information to apt show --full.
    The fields `APT-Pin`, `APT-Candidate`, and `APT-Release` provide
    pinning information. It is not yet possible to see multiple sources,
    and the per-source pinning is not shown.
  * gpgv: Extract VerifyDetachedSignatureFile()

 -- Julian Andres Klode <jak@debian.org>  Thu, 19 Dec 2024 18:38:04 +0100

apt (2.9.17) unstable; urgency=medium

  * solver3:
    - Fix intransitivity of version comparison on upgrade, this
      means no-strict-pinning gets the correct order now.
    - Add a missing debug level check
    - Reject all non-candidates outright for strict pinning
  * gpgv: Merge all keyrings into a single one again. This fixes
    issues with arbitrary gpgv restrictions, such as strange
    filenames or more than 40 keys
  * Stop installing apt-key, make it a test suite helper
    - gpgv: Drop references to apt-key
    - Remove the apt-key manual page and add documentation to apt-secure

 -- Julian Andres Klode <jak@debian.org>  Sat, 07 Dec 2024 17:12:51 +0100

apt (2.9.16) unstable; urgency=medium

  * Avoid extension check for .gpg in Signed-By keyrings (Closes: #1088656)
    A warning for extensions other than .pgp and .gpg will be introduced at
    a later point, but not now as we try to be bug compatible.

 -- Julian Andres Klode <jak@debian.org>  Fri, 29 Nov 2024 09:45:11 +0100

apt (2.9.15) unstable; urgency=medium

  [ David Kalnischkies ]
  * Collect unprinted Ign errors for display in Err output

  [ Julian Andres Klode ]
  * Stop using apt-key for signature verification
    - test-apt-cdrom: Hande assert-pubkey-algo like other gpgv messages
    - Fix accidental ABI break in debListParser::ParseDepends
    - tagfile: Avoid uninitialized variable warnings
    - gpgv: Generalize apt_error to apt_msg(), add apt_warning()
    - Do not implode key file name vector for calling gpgv
    - apt-key: Only cat supported keyrings into the merged one
    - apt-key: Temporarily accept 'pub' as an extension for binary gpg keys
    - gpgv: Explictly pass all the keyrings to gpgv from apt
    - gpgv: Use std::string instead of const char *
    - strutl: Add Base64Decode
    - gpgv: Verify keyrings and dearmor outside apt-key
    - Directly call gpgv instead of apt-key
    - gpgv: Add direct support for --assert-pubkey-algo
    - fileutl: Use execvp() in Popen() instead of execv()
    - Detect working gpgv using gpgv --dump-options

 -- Julian Andres Klode <jak@debian.org>  Thu, 28 Nov 2024 19:33:03 +0100

apt (2.9.14) unstable; urgency=medium

  [ Julian Andres Klode ]
  * test: Do not fail if valgrind is not available
  * test: Handle gpgv-sq differeces and test with it
  * apt-key: Prefer gpgv-sq if installed

  [ Frans Spiesschaert ]
  * Dutch program translation update (Closes: #1087458)
  * Dutch manpages translation update (Closes: #1087461)

  [ Алексей Шилин ]
  * Russian program translation update (Closes: #1087804)

  [ Luca Vercelli ]
  * Italian program translation update (Closes: #1081992)

  [ David Kalnischkies ]
  * Fixes for several compile-time warnings:
    - Acknowledge non-erase usage of remove_if for volatile sources
    - Fix expired std::string usage in APT::StringView testcase
    - Add a virtual destructor to private CacheSet Matcher
    - Avoid unnormalized paths for CMake install destinations
    - Tag hidden acquire classes as final for devirtualization
  * Support uncompressed indexes from partial file:/ mirrors, and
    other fixes for the acquire system:
    - Show hashes calculated by main thread in error messages
    - Alternatively calculate alternative file hashes in file method
    - Rewrite hidden config option checker for more patterns
    - Allow AutoDetectProxy to work with more than just http(s)
    - Do not assume mirror-URIs end in a filename causing a hang
    - Do not change UsedMirror on local copy of InRelease
    - Clear previous ignored errors before processing acquire item again
    - Never consider file/copy/cdrom sources bad sites due to errors
    - Allow HashSum mismatches to fallback to other mirrors
    - Look at non by-hash paths in copy and file methods

 -- Julian Andres Klode <jak@debian.org>  Fri, 22 Nov 2024 17:13:23 +0100

apt (2.9.13) unstable; urgency=medium

  * Add a --comment option to record Comment: in history
  * Hardening: Add -Wp,-D_GLIBCXX_ASSERTIONS to CXXFLAGS to enable bounds
    checking for all STL containers.
  * patterns: Avoid out-of-bounds std::string_view read.
    We only pass NUL-terminated strings to the function, and the code expects
    that but we pass through an interface which doesn't guarantee that, so
    we trigger an index < size() assertion when accessing the terminating
    NUL byte when compiled with -Wp,-D_GLIBCXX_ASSERTIONS.
  * ftparchive: Remove fixed size buffers on trusted inputs (LP: #2087848)
    - ftparchive: override: Remove fixed-size line buffers in override files
    - ftparchive: cachedb: Remove 600-byte key (and hence file path) limit
    - ftparchive: writer: Remove line length limit on file lists
  * tests: Temporarily disable valgrind-if-available on armhf and ppc64el
    to avoid having to wait for a new valgrind without those architectures

 -- Julian Andres Klode <jak@debian.org>  Wed, 20 Nov 2024 15:59:46 +0100

apt (2.9.12) unstable; urgency=medium

  [ наб ]
  * More refactorings for string_view
  * Provide a DEFER() macro for cleanup of local variables

  [ Julian Andres Klode ]
  * string_view: Include missing headers, fixes rust-rust-apt failure
  * Handle Retry-After by default

  [ Felix Moessbauer ]
  * http: use Retry-After HTTP header to optimize retries
  * http: add test for Retry-After handling

 -- Julian Andres Klode <jak@debian.org>  Mon, 18 Nov 2024 15:03:10 +0100

apt (2.9.11) unstable; urgency=medium

  [ Julian Andres Klode ]
  * Various refactorings to the 3.0 solver
  * Remove ftp, rsh, ssh methods (disabled since 1.8)
  * Apply messaging fixes from Robert Krátký
  * Fix keeping back removals of obsolete packages (LP: #2078720)
  * Return an error if ResolveByKeep() is unsuccessful (LP: #2078720)
  * Move apt-extracttemplates to /usr/lib/apt in 'apt' package
  * json: Add "options" array to JSON hooks; adjust test cases accordingly

  [ наб ]
  * Refactor buffers into std::array and bump sizes, improving performance:
    - Bump various buffer sizes to the default APT_BUFFER_SIZE
    - Turn char[APT_BUFFER_SIZE] buffers into std::array<char, APT_BUFFER_SIZE>
    - Turn std::unique_ptr<char[]/std::array<char>>(APT_BUFFER_SIZE) buffers into std::array<char, APT_BUFFER_SIZE>
    - dpkgpm: use sysconf(_SC_GETPW_R_SIZE_MAX)-sized + growing buffer for getpwuid_r() instead of 255
    - dpkgpm: use std::array<unsigned char, APT_BUFFER_SIZE> for I/O copy buffers
  * File reading changes, fixing static line size limitations:
    - dpkgpm: lift out CopyIndented() and make_unique_*() for FILEs; use getline() for reading lines instead of 1k buffer
    - dpkgpm: use getline() for Apport var/crash lines
    - dpkgpm: fdopen() failing doesn't close the fd
  * Only run valgrind in tests if valgrind available on host
  * ReportMirrorFailureToCentral: fix use-after-free
  * Non-functional changes:
    - Replace constant-size never-reallicated getservbyport_r() std::vector buffer with std::array
    - FileFd::Open: don't needlessly copy filename in three-arg constructor
    - Replace std::bind with lambdas
    - Turn unique_ptr<decltype(fclose and free)> into real deleter types (warnings now, UB in C++20)
    - dpkgpm: append ":$printarchitecture" instead of ':'+${#printarchitecture} to package name
    - Prepare for APT::StringView -> std::string_view

  [ Américo Monteiro ]
  * Portuguese manpages translation update (Closes: #1086336)

  [ Miroslav Kure ]
  * Czech program translation update (Closes: #1087220)

 -- Julian Andres Klode <jak@debian.org>  Thu, 14 Nov 2024 18:29:35 +0100

apt (2.9.10) unstable; urgency=medium

  [ Rafael Marian ]
  * Fixed missing spaces in apt-mark(8) (Closes: #959854)
  * Update manual link in apt-secure(8) (Closes: #1050616)
  * Fix misspeling in italian apt --help (Closes: #967973)

  [ David Kalnischkies ]
  * Ignore pending input before confirmation prompts (Closes: #1082956)
  * Show prompt reply if input is from non-terminal

  [ Julian Andres Klode ]
  * extracttar: Move large buffer to heap for valgrind

  [ Christopher Bock ]
  * apt-patterns(7): document recommends

  [ Raziel Anarki ]
  * Support --target-release in `apt list`

 -- Julian Andres Klode <jak@debian.org>  Tue, 22 Oct 2024 18:47:04 +0200

apt (2.9.9) unstable; urgency=medium

  [ Chongyun Lee ]
  * Fix compilation error with clang/libc++ 18

  [ Julian Andres Klode ]
  * Implement 'Pin: source-version <foo>'
  * Fix buffer overflow, stack overflow, exponential complexity in
    apt-ftparchive Contents generation (LP: #2083697)
    - ftparchive: Mystrdup: Add safety check and bump buffer size
    - ftparchive: contents: Avoid exponential complexity and overflows
    - test framework: Improve valgrind support
    - test: Check that apt-ftparchive handles deep paths

  [ Remus-Gabriel Chelu ]
  * Romanian program translation update (Closes: #1080210)

 -- Julian Andres Klode <jak@debian.org>  Thu, 17 Oct 2024 09:41:18 +0200

apt (2.9.8) unstable; urgency=medium

  [ Aristo Chen ]
  * Do not return error if `Signed-By` value in source list is empty

  [ Carles Pina i Estany ]
  * Update Catalan translation

  [ Julian Andres Klode ]
  * Fix obsoleted-by handling for experimental in 3.0 solver

 -- Julian Andres Klode <jak@debian.org>  Mon, 12 Aug 2024 16:12:43 +0200

apt (2.9.7) unstable; urgency=medium

  [ sid ]
  * Show installed version (not candidate version) while removing a package

  [ David Kalnischkies ]
  * Parse snapshot option for apt show/list (Closes: #1075819)

  [ Frans Spiesschaert ]
  * Dutch program translation update (Closes: #1075874)
  * Dutch manpages translation update (Closes: #1075875)

  [ Michał Kułach ]
  * Polish program translation update (Closes: #1075975)

  [ Julian Andres Klode ]
  * worker: Add an audit level to log audit messages
  * gpgv: Add a LaterWorthless level, a SoonWorthless but at 'audit' level
  * gpgv: Add IsAssertedPubKeyAlgo() function
  * Only revoke weak RSA keys for now, add 'next' and 'future' levels
    (LP: #2073126)
  * solver3: Refactor Reason.Pkg()/Reason.Ver() use with iterator
  * Add note that redundant 'CLI interface' is intentional

 -- Julian Andres Klode <jak@debian.org>  Tue, 30 Jul 2024 13:19:24 +0900

apt (2.9.6) unstable; urgency=medium

  * solver3: Do not accidentally promote Replaces and Enhances to
    dependencies; this fixes a regression in 2.9.5 when we added
    code to promote currently satisfied Suggests to Depends.
  * solver3: Unmark packages before setting any in ToDepCache
  * solver3: Refactor (rewrite) FromDepCache() (Closes: #1071519)
    This was intended to not have any behavioural changes, but verifying
    the things that changed actually showed that they fixed subtle bugs.
  * solver3: Consider packages as obsolete and not versions; this makes things
    a bit easier to reason about.
  * solver3: Only demote obsolete packages in choices for upgrades; this
    fixes packages being needlessly replaced in apt install.

 -- Julian Andres Klode <jak@debian.org>  Tue, 02 Jul 2024 22:20:36 +0200

apt (2.9.5) unstable; urgency=medium

  [ Julian Andres Klode ]
  * CI: Set /bin/sh shell for travis user, so flock -c works
  * Fix test cases for non-amd64 architectures
  * edsp: Parse source version from the Source-Version field
  * Check gpgv --dump-options for --assert-pubkey-algo support.
    Thanks to Justus Winter for the idea
  * Make the failure mode for non-executable tests stronger
  * solver3: Do not dump sizes that are clearly pointers
  * solver3: Group work items
  * solver3: Remove no longer necessary comparisons
  * solver3: Order obsolete choices last

  [ Noah Meyerhans ]
  * Fix spelling of @SNAPSHOTID@ in apt.conf.5.xml (Closes: #1072189)

  [ Frans Spiesschaert ]
  * Dutch program translation update (Closes: #1072493)
  * Dutch manpages translation update (Closes: #1072494)

 -- Julian Andres Klode <jak@debian.org>  Thu, 13 Jun 2024 21:04:40 +0200

apt (2.9.4) unstable; urgency=medium

  [ David Kalnischkies ]
  * Fix accidental silencing of output differences in tests
  * Do not mark new if we have already installed providers
  * Do not save new if we have already installed providers (Closes: #839546)
  * Deal better with spurious spaces in arch restrictions (Closes: #1071219)

  [ Julian Andres Klode ]
  * pkgcachegen: Do not try to chmod or write to /dev/null (LP: #2067138)
  * test: Show statistics for parallel tests too
  * test: Run working tests against the 3.0 solver, and adjust as many as possible
    (more bug fixes in a further release)
    - test: Temporarily ignore autoremovable lists for solver3
    - test: Support the 3.0 solver in most existing test cases
  * Various improvements to the 3.0 solver:
    - edsp: solver3: Show some progress
    - solver3: Implement APT::Solver::RemoveManual to allow removing manual packages
    - solver3: Promote satisfied Suggests to Recommends
    - solver3: Solve optional dependencies before optional packages
    - solver3: Try candidate before installed version on upgrade
    - solver3: Use stable sort
    - solver3: Actually restore unsolved items rather than solved ones
    - solver3: Fix translations of removals for marked install

 -- Julian Andres Klode <jak@debian.org>  Sat, 25 May 2024 10:58:49 +0200

apt (2.9.3) unstable; urgency=medium

  [ Julian Andres Klode ]
  * Initial implementation ("alpha") of the 3.0 solver:
    This new solver is available using the --solver 3.0 option.
    Highlights:
    - Fully backtracking solver, think DPLL without pure literal elimination
    - Manually installed packages are not offered up for removal
    - New --no-strict-pinning option allows APT to fallback to non-candidate
      versions, e.g. apt install --no-strict-pinning foo/experimental installs
      foo from experimental and will switch dependencies where needed.
    - Autoremove is more aggressive and only keeps the strongest automatically
      installed package. For example, gcc-<version> will now be offered for
      removal and no longer kept around due libtool Depends: gcc | c-compiler
      and gcc-<version> Provides: c-compiler, as `gcc` is already satisfied.
    Caveats right now:
    - Test suite is not yet passing
    - The list of automatically removable packages is not displayed
      when automatically installed packages are not removed
    - Error information gets lost on backtracking (see Debug::APT::Solver=2)
    - Error information is just rendered as A -> B implication graphs,
      with some nodes perhaps containing a "not".
    - The logic for replacing obsolete manually installed packages with
      new replacement packages (think Conflits/Replaces/Provides) is not
      yet implemented.
    - Conflict-driven clause learning is not implemented, so backtracking
      is technically pretty inefficient.
  * Solver3 integration fixes:
    - test: Ignore progress output in comparing output..
    - test-allow-scores-for-all-dependency-types: Adjust for solver3
    - EDSP: Add "solver3" alias for apt-internal-solver
  * UI work:
    - Highlight essential removals with action::remove color
    - The text of notices and audits shall not be bold
    - Separate columns by 2 spaces in lists (Closes: #1070064)
  * Support src:name shortcuts in showsrc, source, build-dep commands

  [ David Kalnischkies ]
  * Do not ignore if a cmake execute_process fails
  * Avoid figuring which kept pkgs are phased if we don't display it
  * Match version constraints before saving garbage packages
  * Do not upgrade rev-deps ear-marked for removal
  * Drop sudo-related envvars in testing framework
  * Add test for dealing with unsat Suggests promoted to Recommends
  * Allow parsing an empty Provides line (Closes: #1069874)

  [ Frans Spiesschaert ]
  * Dutch program translation update (Closes: #1070142)
  * Dutch manpages translation update (Closes: #1070143)

 -- Julian Andres Klode <jak@debian.org>  Tue, 14 May 2024 13:01:31 +0200

apt (2.9.2) unstable; urgency=medium

  [ Julian Andres Klode ]
  * Output customization and color refactoring:
    - Also respect an APT_NO_COLOR variable
    - Add a --color, --no-color option
    - Add APT::Configuration::color helper to colorize things
    - Use APT::Configuration::color to apply color to output
    - Configure individual action colors using APT::Color::Action
    - apt.conf(5): Document the APT::Color scope
  * Introduce the new --audit error level
    - Add an "audit" error level, and change the default to notice
    - Add an --audit option to switch on audit logging
    - Add an audit message for missing InRelease files
  * Change the rendering for notices, warnings, errors:
    - i18n: Use Error:/Warning:/Notice: instead of E:/W:/N:
    - Render notices without (yellow) color, just in bold
    - Keep the entire error/warning/notice message bold
  * Other UI changes:
    - apt update: Show upgradable package count in bold
    - show: Highlight field names and colorize package name
    - Remove spurious newline inside `apt autoremove` message
    - Insert blank line following simulation note
    - Show "Upgrading:" before other sections
    - Only erase OpProgress lines in output version 3.0
  * Test fixes:
    - test: configuration: color: reset _config after tests
    - build: test: Silence warnings in GTest code

  [ Miroslav Kure ]
  * Czech program translation update (Closes: #1068943)

  [ Boyuan Yang ]
  * Simplified Chinese program translation update (Closes: #1069118)

  [ David Kalnischkies ]
  * Allow no spaces for the last dependency in ParseDepends, too (LP: #2061834)

 -- Julian Andres Klode <jak@debian.org>  Mon, 22 Apr 2024 19:36:30 +0200

apt (2.9.1) unstable; urgency=medium

  [ Julian Andres Klode ]
  * Further UX improvements for apt(8)
    - Estimate free space and issue warnings if exceeded, incl. /boot
      + Rename "Installed size:" to "Space needed:"
      + Space needed: Show space available in /usr
      + Show space estimate for /boot, if separate; or estimate initrd for /usr
      + Add warnings if space estimate exceeds free space
    - Show downgrades as yellow
    - Use "Continue anyway?" if a warning is queued, and default to N
    - Use unicode install progress bar on UTF-8 locales
  * Hide some of the output formatting and details from translatable strings,
    do expect some more translation churn in upcoming uploads.

  [ Rafael ]
  * Remove duplicate sentence "Changing held packages:"

 -- Julian Andres Klode <jak@debian.org>  Sun, 14 Apr 2024 18:45:28 +0200

apt (2.9.0) unstable; urgency=medium

  * Welcome to the APT 3.0 development series. It has a new UI for
    apt(8). It has colors, columnar display, some more padding, and
    shows removals last (Closes: #755088), making the output more
    easy to quickly scan.

  [ David Kalnischkies ]
  * Avoid subshell hiding failure report from testfilestats
  * Ignore umask of leftover diff_Index in failed pdiff test
  * Fix and unfuzzy previous VCG/Graphviz URI change

  [ Julian Andres Klode ]
  * Revert "Temporarily downgrade key assertions to "soon worthless""
    We temporarily downgraded the errors to warnings to give the
    launchpad PPAs time to be fixed, but warnings are not safe:
    Untrusted keys could be hiding on your system, but just not
    used at the moment. Hence revert this so we get the errors we
    want.
    This reverts commit 66998ed3d299bede651ad40368bdb270f5f5b0f9. (LP: #2060721)
  * columnar: Fix floating point exception (list is empty if -V)
  * OpProgress: Erase lines when done
  * apt: Introduce the new terse apt output format 3.0
  * Show Recommends/Suggests for upgrades too, move them down
  * Only show Recommends/Suggests for new installs, not upgrades
  * Use the same words for the summary

  [ Christian Blichmann ]
  * Columnar output for package lists similar to 'ls'

 -- Julian Andres Klode <jak@debian.org>  Fri, 12 Apr 2024 20:17:34 +0200

apt (2.7.14) unstable; urgency=medium

  [ Steve Langasek ]
  * Support building without gnutls
  * Add an artificial Conflicts: against libnettle8
    to force upgrades in launchpad buildd chroots

  [ David Kalnischkies ]
  * Handle EINTR in the static FileFd::Write overload
  * Remove non-existent Debug::BuildDeps from apt.conf(5)
  * Parse unsupported != relation in dependencies

  [ Frans Spiesschaert ]
  * Dutch program translation update (Closes: #1065513)
  * Dutch manpages translation update (Closes: #1065517)

  [ Wesley Schwengle ]
  * Update documentation for apt-get upgrade with pkg arg (Closes: #1065831)
  * Update documentation for apt upgrade with pkg arg (Closes: #1065831)
  * Include Dutch translation for apt/apt-get upgrade documenation update
  * Update Graphviz URL to https://graphviz.org/
  * Update VCG tool URI to new location
  * s#http://bugs.debian.org/src/#https://bugs.debian.org/src#

  [ Julian Andres Klode ]
  * pkgTagFile::Jump: Use lookback buffer to rejump to current position
    (Closes: #1067440)
  * debrecords: Do not reparse if given same location (Closes: #1067440)
  * Revert "debrecords: Do not reparse if given same location"

 -- Julian Andres Klode <jak@debian.org>  Fri, 22 Mar 2024 11:11:44 +0100

apt (2.7.13) unstable; urgency=medium

  * Acknowledge NMU; thank you, Steve!

  [ Wesley Schwengle ]
  * Show correct location of configure-index in man page

  [ Yuan Tao ]
  * Fix spelling mistake in zh_CN.po

  [ Julian Andres Klode ]
  * gpgv: Surface [GNUPG:] ERROR and [GNUPG:] WARNING status messages
  * gpgv: Add a reason to worthless signers
  * Implement gpgv --assert-pubkey-algo=>=rsa2048,ed25519,ed448 (LP: #2055193)
  * Rename 'weak digest algorithm' to 'weak algorithm'
  * Temporarily downgrade key assertions to "soon worthless"
  * Do not require versioned dpkg-dev on CI
  * prepare-release: Adjust for t64 suffix

 -- Julian Andres Klode <jak@debian.org>  Wed, 28 Feb 2024 19:48:27 +0100

apt (2.7.12+nmu1) unstable; urgency=medium

  * Non-maintainer upload.
  * Rename libraries for 64-bit time_t transition.  Closes: #1061896

 -- Steve Langasek <vorlon@debian.org>  Wed, 28 Feb 2024 01:20:31 +0000

apt (2.7.12) unstable; urgency=medium

  [ Kenyon Ralph ]
  * apt-key: remove carriage returns from armored keyrings before dearmoring

  [ наб ]
  * apt.8: summarise remaining verbs (Closes: #827785)

  [ Adam Saponara ]
  * Prevent infinite loop in `ReadConfigFile`

  [ Gábor Németh ]
  * Typos in integration tests
  * Document 'dist-clean'

  [ Wesley Schwengle ]
  * Configure the amount of kernels to keep
  * Fix bug where ./git-clang-format.sh errors incorrectly
  * Add documentation of autoremove to apt.conf (5)

  [ Julian Andres Klode ]
  * Bump Ubuntu apt-key deprecation notice to 24.04
  * Modernize standard library includes
  * Automatically enable snapshots where supported
  * test-snapshot: Fix a test case
  * Move systemd units to /usr/lib (Closes: #1054137)

 -- Julian Andres Klode <jak@debian.org>  Tue, 20 Feb 2024 19:38:02 +0100

apt (2.7.11) unstable; urgency=medium

  [ David Kalnischkies ]
  * Remove erroneous -a flag from apt-get synopsis in manpage
  * Support -a for setting host architecture in apt-get source -b

  [ Julian Andres Klode ]
  * For phasing, check if current version is a security update, not just previous ones
    (LP: #2051181)
  * Add public phased update API
  * Add a new ?phasing pattern
  * Add the ?security pattern
  * Show a separate list of upgrades deferred due to phasing (LP: #1988819)

 -- Julian Andres Klode <jak@debian.org>  Tue, 13 Feb 2024 16:31:00 +0100

apt (2.7.10) unstable; urgency=medium

  * pkgcachegen: Use placement new to construct header to make
    valgrind happy when we hash/write out padding bytes
  * Add Conflicts: apt-verify.
    The APT team is very concerned about the encroachement of its
    namespace and the impact on security of its file verification
    process. We have expressed those concerns in the ITP bug, but
    the package was nonetheless uploaded and accepted, so we have
    to take this extraordinary step to protect our users.

 -- Julian Andres Klode <jak@debian.org>  Fri, 19 Jan 2024 09:31:13 +0100

apt (2.7.9) unstable; urgency=medium

  [ David Kalnischkies ]
  * Accept file system disorder in test-ignored-files

  [ Julian Andres Klode ]
  * CI: Pull from testing, unstable broken atm

 -- Julian Andres Klode <jak@debian.org>  Thu, 11 Jan 2024 10:04:52 +0100

apt (2.7.8) unstable; urgency=medium

  [ Gábor Németh ]
  * Add 'dist-clean' command to remove packages and list files (Closes:
    #959093); this is experimental and does not yet have docs or tests.

  [ David Kalnischkies ]
  * Have Grp.FindPreferredPkg return very foreign pkgs as last resort
  * Improve and test distclean implementation
  * Do not store .diff_Index files in update

  [ Tianyu Chen ]
  * apt-pkg/cacheset.cc: set ShowErrors to true when no version matched
    (Closes: #1053887)

  [ Julian Andres Klode ]
  * Do not silently ignore directories for reserved file names
  * test: Disable valgrind on armhf, incompatible with stack clash protector
    (Closes: #1059352)

 -- Julian Andres Klode <jak@debian.org>  Mon, 08 Jan 2024 10:32:31 +0100

apt (2.7.7) unstable; urgency=medium

  [ sid ]
  * Fix incorrect time unit comment for PulseInterval

  [ Patrice Duroux ]
  * Update fr.po (add a missing dot)

  [ Julian Andres Klode ]
  * Stop calculating Description-md5 if missing
  * Revert "Do not fail on systems running in FIPSmode."
  * s/AlreadDownloaded/AlreadyDownloaded/ in doc/progress-reporting.md.
    Thanks to jwilk for suggestion
  * Bump Priority to required to match Debian archive.
    This unbreaks mmdebstrap scenarios if you mirror Debian or use
    a distro where apt did not get overridden to required.
    Reported-By: josch on IRC, following discovery by helmut
  * Restore ?garbage by calling MarkAndSweep before parsing (LP: #1995790)
  * Fix the test suite by adding new "m" flags to debug output

  [ Frans Spiesschaert ]
  * Dutch program translation update (Closes: #1055178)

  [ David Kalnischkies ]
  * Raise cmake_minimum_required to 3.13 to avoid warnings
  * Use different variable name in GTest source path detection

 -- Julian Andres Klode <jak@debian.org>  Wed, 22 Nov 2023 16:43:47 +0100

apt (2.7.6) unstable; urgency=medium

  [ Américo Monteiro ]
  * Portuguese manpages translation update (Closes: #1051731)

  [ Julian Andres Klode ]
  * Downgrade unmerged-usr from error to two warnings (Closes: #1052058)

 -- Julian Andres Klode <jak@debian.org>  Wed, 20 Sep 2023 10:25:26 +0200

apt (2.7.5) unstable; urgency=medium

  * doc/po/nl.po: Fix spurious translation of docbook tag

 -- Julian Andres Klode <jak@debian.org>  Sat, 16 Sep 2023 13:32:18 +0200

apt (2.7.4) unstable; urgency=medium

  [ Julian Andres Klode ]
  * CI: Do not require UID 1000 for our test user.
  * methods: store: Use APT_BUFFER_SIZE (64k) instead of 4k buffers
  * Only accept installs of usrmerge on unmerged-usr systems.
    As of bookworm, merged-usr is mandatory, and people got caught
    in the crosshairs of the dpkg fsys-unmessusr debacle and inadvertently
    reverted back to an unmerged configuration and continue to remain
    on an unsupported system unknowingly.
  * Drop alternatives to the gpgv dependency (Closes: #1051642)
  * Remove unnecessary explicit st_dev check for merged-usr

  [ Frans Spiesschaert ]
  * Dutch translation update (Closes: #1051720)
  * Dutch documentation translation update (Closes: #1051723)

  [ Helge Kreutzmann ]
  * updated German translation (Closes: #1049427)

 -- Julian Andres Klode <jak@debian.org>  Sat, 16 Sep 2023 13:01:48 +0200

apt (2.7.3) unstable; urgency=medium

  [ Tianon Gravi ]
  * Add "apt-patterns" reference to "apt list" description in apt(8)

  [ Frans Spiesschaert ]
  * Dutch manpages translation update (Closes: #1033904)
  * Dutch program translation update (Closes: #1033909)

  [ Mert Dirik ]
  * Turkish program translation update

  [ Remus-Gabriel Chelu ]
  * Romanian program translation update (Closes: #1040644)

  [ David Kalnischkies ]
  * Add apt-patterns(7) to apt{,-cache,-get} SEE ALSO sections

  [ Julian Andres Klode ]
  * Compare SHA256 to check if versions are really the same (Closes: #931175)
    (LP: #2029268)

 -- Julian Andres Klode <jak@debian.org>  Wed, 02 Aug 2023 14:30:47 +0200

apt (2.7.2) unstable; urgency=medium

  [ A. Maitland Bottoms ]
  * Do not fail on systems running in FIPSmode.

  [ Julian Andres Klode ]
  * Upload to unstable
  * update: Add notice about missing Signed-By in deb822 sources
  * doc: Bump distro versions for apt-key removal
  * dist-upgrade: Revert phased updates using keeps only (LP: #2025462)
  * Do not mark updates for install that are still phasing
  * Fix snapshot crashes with multiple components inside Ubuntu docker
    image

 -- Julian Andres Klode <jak@debian.org>  Wed, 12 Jul 2023 17:23:26 +0200

# Older entries have been removed from this changelog.
# To read the complete changelog use `apt changelog apt-doc`.
