summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge branch 'feat/complete-list-search-patterns' into 'main'Julian Andres Klode2026-01-051-1/+20
|\ | | | | | | | | bash-complete basic list search patterns See merge request apt-team/apt!536
| * bash-complete basic list search patternsVille Skyttä2026-01-051-1/+20
|/
* Merge branch 'solver3' into 'main'Julian Andres Klode2026-01-0537-852/+925
|\ | | | | | | | | solver3: Refactorings See merge request apt-team/apt!542
| * solver3: Ensure rule-of-3 memory safety for ContiguousCacheMapJulian Andres Klode2026-01-051-0/+4
| |
| * solver3: Modernize std::find() to std::ranges::containsJulian Andres Klode2026-01-052-13/+10
| | | | | | | | Where applicable
| * solver3: Add a strange assertionJulian Andres Klode2026-01-051-0/+2
| | | | | | | | I do not know why I don't hit this
| * solver3: Remove Push() and refactor Solve()Julian Andres Klode2026-01-052-52/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This method is no longer needed technically speaking, we should use Assume() instead. It turns out that there is a slight bug in the propagation and some clauses that are unit end up on the heap rather than having been propagated away, so we temporarily need to keep an if for that around. To accomodate the switch from Push() to Assume() we need to make sure that the work item is pushed to our trail *after* we have assumed it, such that reverting pushes it back to the work heap. Refactor the code to consistently use Assume() rather than supporting Enqueue(), this vastly simplifies things. This is not fully accurate in the current model and leads to unnecessary decision levels, since sometimes we seem to be reaching unit clauses here. This preserves traversal order by first removing the item from the heap and then adding it back if we need to solve it again.
| * macros: Introduce must_succeed() macroJulian Andres Klode2026-01-051-0/+8
| | | | | | | | | | This is like assert() but never compiled out so can be used with function calls that have side effects.
| * solver3: Re-use existing error message code in Solve()Julian Andres Klode2026-01-051-7/+4
| | | | | | | | | | We can just re-use Enqueue() here to produce our conflict message why am I being silly and duplicate this.
| * solver3: Rename depth to levelJulian Andres Klode2026-01-052-23/+23
| | | | | | | | | | Matches the rename of depth() to decisionLevel() at a shorter name.
| * solver3: Rename decision to assignmentJulian Andres Klode2026-01-0533-113/+112
| | | | | | | | | | | | | | The previous use of decision here conflicted with the use of decision level and the general notion of having made a decision, because the assignment might have been propagated as a matter of fact.
| * solver3: Reorder the source codeJulian Andres Klode2026-01-052-442/+438
| | | | | | | | | | Move the DependencySolver methods and their helpers to the end of the file.
| * solver3: Extract DependencySolverJulian Andres Klode2026-01-054-89/+117
| | | | | | | | Extract almost all dependency logic into a subclass
| * solver3: Refactor to use a namespaceJulian Andres Klode2026-01-055-243/+241
| | | | | | | | | | | | | | This removes the need for the forward references, thus fixing part of the libc++ issues pointed out in [merge-511]. [merge-511] https://salsa.debian.org/apt-team/apt/-/merge_requests/511/diffs
| * solver3: Rename key concepts to MiniSAT namesJulian Andres Klode2026-01-052-55/+56
| | | | | | | | | | This should make it easier for people with MiniSAT knowledge to onboard themselves to the solver.
| * solver3: Rename Decision to LiftedBoolJulian Andres Klode2026-01-052-47/+47
| | | | | | | | | | MUST becomes True, MUSTNOT becomes False, and NONE becomes Undefined.
| * solver3: Implement value(Lit) and use itJulian Andres Klode2026-01-052-19/+41
| |
| * solver3: Refactor Assume(), Enqueue() from Var to LitJulian Andres Klode2026-01-052-25/+26
| | | | | | | | This simplifies the code _slightly_
| * solver3: Introduce a Lit type to hold literalsJulian Andres Klode2026-01-051-0/+48
|/
* Merge branch 'configure-index/forceipv' into 'main'Julian Andres Klode2026-01-051-0/+3
|\ | | | | | | | | configure-index Acquire::ForceIPv4/6 See merge request apt-team/apt!531
| * configure-index Acquire::ForceIPv4/6Christopher Bock2026-01-051-0/+3
|/
* Merge branch 'doc-typo-apt-transport-https' into 'main'Julian Andres Klode2026-01-051-2/+2
|\ | | | | | | | | Fix host-specific Acquire::https CAInfo/CRLFile example (Closes: #1112123) See merge request apt-team/apt!541
| * Fix host-specific Acquire::https CAInfo/CRLFile example (Closes: #1112123)Simon Josefsson2026-01-041-2/+2
|/ | | | | | The proper syntax for a host-specific parameters are: Acquire::https::deb.debian.org::CAInfo "/path/to/cert.pem"; Acquire::https::deb.debian.org::CRLFile "/path/to/cert.pem";
* Merge branch 'main' into 'main'Julian Andres Klode2025-12-161-3/+3
|\ | | | | | | | | Priority 1000 allows downgrades. Closes #1016967 See merge request apt-team/apt!537
| * Priority 1000 allows downgrades. Closes #1016967Daniel Lewart2025-12-161-3/+3
|/
* Merge branch 'docs/grammar' into 'main'Julian Andres Klode2025-12-1517-44/+44
|\ | | | | | | | | Grammar fixes See merge request apt-team/apt!535
| * Grammar fixesVille Skyttä2025-12-0317-44/+44
|/
* Release 3.1.123.1.12Julian Andres Klode2025-11-1015-76/+89
|
* Improve documentation for apt --cli-versionJulian Andres Klode2025-11-102-12/+10
| | | | Document options inside apt(8)
* weakptr: Simplify destructor to use range-based forJulian Andres Klode2025-11-101-3/+2
| | | | Explicit iterators considered harmful :)
* A special cow for a special weekJulian Andres Klode2025-11-101-2/+8
|
* Merge branch 'bug1120463' into 'main'Julian Andres Klode2025-11-102-1/+25
|\ | | | | | | | | Correctly copy provided version in m-a lazy-init See merge request apt-team/apt!530
| * Correctly copy provided version in m-a lazy-initJulian Andres Klode2025-11-102-1/+25
|/ | | | | | | | When a provides was copied, we inadvertently copied the package version instead of the provided version. Copy the provided version instead. Closes: #1120463
* Merge branch 'missing-includes' into 'main'Julian Andres Klode2025-10-281-0/+2
|\ | | | | | | | | Fix missing includes See merge request apt-team/apt!528
| * Fix missing includesRuoyu Zhong2025-10-281-0/+2
|/ | | | | | | | | | | | | | | | | | | | | This was missed in 4b22a1e36 (apt-team/apt!522), and caused the following error when built with GCC 12: /var/tmp/apt-20251026-9687-pc954n/apt-3.1.10/apt-private/private-cmndline.cc:544:23: error: ‘optional’ is not a member of ‘std’ 544 | static std::pair<std::optional<long unsigned int>, std::optional<long unsigned int>> parseCliVersion(std::string_view version) | ^~~~~~~~ /var/tmp/apt-20251026-9687-pc954n/apt-3.1.10/apt-private/private-cmndline.cc:27:8: note: ‘std::optional’ is defined in header ‘<optional>’; did you forget to ‘#include <optional>’? 26 | #include <apti18n.h> +++ |+#include <optional> 27 | /*}}}*/ While at it, also add missing <utility> include for std::pair. Discovered in https://github.com/Homebrew/homebrew-core/pull/251162 by Anton Melnikov. Co-authored-by: Anton Melnikov <antonsm21@gmail.com> Signed-off-by: Ruoyu Zhong <zhongruoyu@outlook.com>
* Release 3.1.113.1.11Julian Andres Klode2025-10-265-6/+15
|
* Revert "depcache: Allow changing multi-arch versions for removed siblings"Julian Andres Klode2025-10-262-24/+11
| | | | | | | | | | | | | | | | This reverts commit 74636b64a7ee56637a3ce4ddc1d060ca9f8b77e1. Adjust the test case accordingly, as it is no longer possible to install libgcc-s1:s390x. We need to sort this out in the ToDepCache translation layer at a later time. Sadly the depcache rejects valid solutions like this; solving this isn't trivial. Technically we need to split up the FromUser and auto-bit handling to solve this, but even then, MarkDelete() with FromUser=0 moves the auto-bit on metapackages; this doesn't happen when doing FromUser=1, so we can't always do FromUser=1. Fixes: a3fca052ca21ad222ac7f2fdd7f3fe84b44beb60
* test: Correctly skip tests when not using -jJulian Andres Klode2025-10-261-1/+1
| | | | | | We never implemented comment support in the skip test file for -j as we only run with -j, but the debian/tests/run-tests runs without parallelism.
* tests: Do not skip tests for --solver internalJulian Andres Klode2025-10-261-3/+3
| | | | | | | Remove the exports for the default as we don't want those inherited, they can just be reset. Set the skip file to /dev/null when a solver is selected, to make sure that tests don't fall back to the default skip file.
* Adjust test cases to treat 3.0 as default APT_SOLVER if not setJulian Andres Klode2025-10-268-10/+10
| | | | | Not needed so far because we export a default 3.0 APT_SOLVER, but quite useful if we stop doing so (next commit).
* Release 3.1.103.1.10Julian Andres Klode2025-10-2514-15/+382
|
* Merge branch 'solver3' into 'main'Julian Andres Klode2025-10-2517-49/+103
|\ | | | | | | | | Enable the new solver by default in 0.31, 1.21, 2.11, 3.1 See merge request apt-team/apt!527
| * solver3: Allow removing manually installed packagesJulian Andres Klode2025-10-2511-43/+81
| |
| * solver3: Do not lose notion that we backtrackedJulian Andres Klode2025-10-252-1/+7
| | | | | | | | | | | | | | | | | | Record a silly string if we backtracked such that we are aware of it. We need to handle this in a broader fashion, but this was at least breaking test-apt-never-markauto-sections with remove-manual LP: #2129819
| * depcache: Allow changing multi-arch versions for removed siblingsJulian Andres Klode2025-10-251-0/+4
| | | | | | | | | | Do not prevent us from changing the version of a foreign package because a sibling that is being removed has a different candidate.
| * Enable the new solver by default in 0.31, 1.21, 2.11, 3.1Julian Andres Klode2025-10-255-5/+11
|/ | | | | Enable the new solver by default and remove the vendor-specific configuration change in Ubuntu's drop-in.
* Merge branch 'variants-submit' into 'main'Julian Andres Klode2025-10-2519-20/+520
|\ | | | | | | | | Merge Architecture variants from Ubuntu See merge request apt-team/apt!526
| * Implement architecture variantsJulian Andres Klode2025-10-2516-5/+506
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Architecture variants are children of an architecture that share the same ABI but are optimized for different ISA levels. They are available in Ubuntu 25.10 and newer, and not supported in Debian or other distributions. A deb built for a variant contains the Architecture-Variant field, and the Architecture field points to the baseline, for example: Architecture: amd64 Architecture-Variant: amd64v3 However, the apt-get indextargets command reports the variant in the Architecture: field, and most of the code in APT presents the variant as the architecture. There are two types of variants: 1. Standalone variants are recorded in the Architectures field of the Release file as if they were a real architecture: Architectures: amd64 amd64v3 Standalone architecture variants only fetch the standalone architecture variant's Packages file. To do this, this patch changes the code such that the variants indextargets "supplant" the base targets. This may have complicated outcomes on the apt-get indextargets command. 2. Other variants can only be identified by their files being recorded with hashes in the Release file. APT fetches both the base architecture's as well as the variant's Packages file. Variants are configured in the APT::Architecture-Variants list. Image builders may want to build specific variant images using APT::Architecture-Variants { "amd64v3"; } But this commit also implements an automatic discovery mechanism using the varianttable and /proc/cpuinfo. APT::Architecture-Variants "auto";
| * Move split() to APT::String::Split()Julian Andres Klode2025-10-253-15/+14
|/ | | | This splits based upon contiguous whitespace as separators
* Merge branch 'main' into 'main'Julian Andres Klode2025-10-251-0/+4314
|\ | | | | | | | | i18n: Add Irish (ga) translation for APT See merge request apt-team/apt!507