summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * 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
| * Add Irish translationAindriú Mac Giolla Eoin2025-10-251-0/+4314
|/ | | | [jak: Run update-po on it]
* solver3: Eagerly satisfy previously satisfied RecommendsJulian Andres Klode2025-10-252-3/+9
| | | | | | | | | | | | | | | | | | When a user ran `apt install gpg`, the solver decided to remove `gnupg` and `seahorse` because `seahorse` was only pulled in as a Recommends of ubuntu-desktop and Recommends were resolved after all other dependencies. Solve this to most extent by introducing eager optionality: These dependencies, while they do not take part in classic unit propagation, are otherwise treated like hard dependencies and resolved as soon as possible rather than after any hard dependencies. This ensures that the Recommends of ubuntu-desktop on seahorse is retained correctly, and as a result, gnupg is updated to the latest version. Oops: 6c8e32eb-665d-11f0-a985-fa163ec8ca8c
* Merge branch 'interactive' into 'main'Julian Andres Klode2025-10-259-29/+243
|\ | | | | | | | | CLI versioning See merge request apt-team/apt!522
| * Record varying defaults based on cli-version, rather than binaryJulian Andres Klode2025-10-257-26/+230
| | | | | | | | | | | | The --cli-version argument can be used to request a specific CLI version. The default CLI version is the APT version for apt(8) and 0 for the other apt-get tools.
| * configuration: Add MoveSubTree with overwrite=falseJulian Andres Klode2025-10-252-3/+13
|/
* Release 3.1.93.1.9Julian Andres Klode2025-10-2145-46/+236
|
* French program translation updateJulian Andres Klode2025-10-211-75/+71
| | | | Closes: #1116322
* Dutch manpages translation updateFrans Spiesschaert2025-10-211-33/+44
| | | | Closes: #1115367
* Dutch program translation updateFrans Spiesschaert2025-10-211-3/+8
| | | | Closes: #1115366
* Spanish translation updateIgor Támara2025-10-211-294/+275
| | | | Closes: #1110853
* Merge branch 'close-range-2' into 'main'Julian Andres Klode2025-10-213-66/+28
|\ | | | | | | | | ExecFork: Simplify closing and make it safe See merge request apt-team/apt!525
| * Correctly append or remove FD_CLOEXECJulian Andres Klode2025-10-202-4/+10
| | | | | | | | | | Rather than just setting the flags to 0 or FD_CLOEXEC, read the current value and append or remove as needed.
| * ExecFork: Simplify closing and make it safeJulian Andres Klode2025-10-202-63/+19
|/ | | | | | | | | Implement a wrapper around FD_CLOEXEC and use it in place of the raw fcntl(). This wrapper _Exit()s the child if the operation failed. Restructure the close_range() handling to simply mark all fds for closing first and then "reopen" the ones we should keep.
* Add some comments and tests around Keep-Fd orderingJulian Andres Klode2025-10-202-0/+8
|
* Merge branch 'close-range' into 'main'Julian Andres Klode2025-10-203-2/+58
|\ | | | | | | | | ExecFork: Use close_range() if available See merge request apt-team/apt!524
| * ExecFork: Use close_range() if availableJulian Andres Klode2025-10-203-2/+58
|/ | | | | | | | | | | | | Use close_range() if we have it in preference to iterating over /proc/self/fd and falling back to closing all possible fds. This builds sets of ranges to close that take into account the APT::Keep-Fds vector, and a test case is provided to ensure correctness of the splitting logic. Preference is given to close_range() over /proc as in the optimal case, this results in a single system call!
* Merge branch 'build-dep_mark-auto' into 'main'Julian Andres Klode2025-10-072-1/+10
|\ | | | | | | | | Let APT::Get::Mark-Auto satisfy APT::Get::Build-Dep-Automatic See merge request apt-team/apt!514
| * Let APT::Get::Mark-Auto satisfy APT::Get::Build-Dep-AutomaticJochen Sprickerhof2025-10-072-1/+10
|/ | | | | | | | This allows: apt build-dep --mark-auto apt Closes: #973260
* Merge branch 'history-command-id-error-fix' into 'main'Julian Andres Klode2025-10-062-0/+6
|\ | | | | | | | | Fix history command error when no ID was given See merge request apt-team/apt!520
| * Fix history command error when no ID was givenSimon Johnsson2025-10-062-0/+6
|/
* Merge branch 'main' into 'main'Julian Andres Klode2025-10-061-1/+3
|\ | | | | | | | | fix compiling with musl See merge request apt-team/apt!508
| * fix compiling with muslGyorgy Sarvari2025-10-061-1/+3
|/ | | | | | | | | | | | | | | | | | | | | | In case apt is compiled against musl-libc, then compilation fails with the following error: cmdline/apt-internal-solver.cc:122:20: error: 'basename' was not declared in this scope; did you mean 'rename'? | 122 | if (strcmp(basename(argv[0]), "solver3") == 0) | | ^~~~~~~~ | | rename To fix it, include libgen header where musl can find this function also. Once this is fixed, compilation fails once again with musl-libc, because the basename function takes *char argument instead of const *char: this is because the musl implementation cuts off the trailing slashes of the path, in case the argument is a folder path. To account for this, instead of passing argv[0] directly, create a non-const string copy of it, and pass that to base. Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
* Release 3.1.83.1.8Julian Andres Klode2025-10-045-6/+13
|
* Move "Tried to start delayed item […], but failed" to debuggingJulian Andres Klode2025-10-041-4/+2
| | | | | | | | We don't quite know why a stuck queue cannot get unstuck here, and it's possible that this is causing the queue to stall, but shrug. Closes: #1111554
* Release 3.1.73.1.7Julian Andres Klode2025-10-0248-206/+1750
|
* Merge branch 'history-command' into 'main'Julian Andres Klode2025-10-026-24/+380
|\ | | | | | | | | Add history undo, redo, and rollback features See merge request apt-team/apt!518
| * Add history undo, redo, and rollback featuresSimon Johnsson2025-10-026-24/+380
|/
* test-history: Adjust for as-installed testingJulian Andres Klode2025-09-301-1/+1
| | | | | | When testing as installed, we inadvertently do not replace the command-line with dummy in the "apt history-list" command.
* Release 3.1.63.1.6Julian Andres Klode2025-09-2648-518/+6783
|
* history-list: reject any arguments providedJulian Andres Klode2025-09-261-0/+3
|
* history: Handle transactions without any changesJulian Andres Klode2025-09-262-1/+21
| | | | For some reason I have them in my log file.
* test-history: Do not fully remove the command lineJulian Andres Klode2025-09-261-2/+2
| | | | | This will particularly be useful in the next commit; just strip the path form the commandline.
* Merge branch 'history-command' into 'main'Julian Andres Klode2025-09-267-8/+675
|\ | | | | | | | | History Command and Parsing See merge request apt-team/apt!516
| * History Command and ParsingSimon Johnsson2025-09-267-8/+675
|/
* Support kernel images with + in uname in kernel autoremove testDavid Kalnischkies2025-09-021-1/+1
| | | | | | | | | autopkgtest run on stable can have an uname like "6.12.41+deb13-amd64". The +deb13 being relatively new in the package name. The code doing the autoremoval has no problem with it and its a legal package name, but the test that wants to check if the right regexes are generated does not escape the + correctly (aka at all) so it isn't finding the regex it is looking for failing the test.
* Show command in test failure messages if default is overriddenDavid Kalnischkies2025-09-022-19/+33
| | | | | | | | Tests usually print the command they run, but it can be overridden with a chosen message to make clearer what is actually tested. To debug failures it can be useful to know the command run through especially if its a partly generated command depending on the test environment (like in the kernel autoremove test).
* Release 3.1.53.1.5Julian Andres Klode2025-08-265-6/+33
|
* Merge branch 'edsp-architectures' into 'main'Julian Andres Klode2025-08-261-27/+31
|\ | | | | | | | | edsp: Bug fixes for architecture reading and dumping solver errors See merge request apt-team/apt!483
| * edsp: Do not skip lines (fixes Architecture reading)Julian Andres Klode2025-08-261-31/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We skipped the Architecture: line because when the outer loop got to it, the inner loop started and read the next line after it. Get rid of the nested loop instead, and first run a loop to find the request line, and then a second loop to parse the request flags. An alternative would be to use a combined loop that supports non-compliant protocol implementations, but that's harder to read and we don't expect there to be any especially on the request side.
| * edsp: Clear architecture cacheJulian Andres Klode2025-08-261-0/+4
|/ | | | We need to actually use the architecture values we set
* Merge branch 'fix-indent' into 'main'Julian Andres Klode2025-08-261-2/+5
|\ | | | | | | | | Fix indentation compiler warning with clang See merge request apt-team/apt!498
| * Fix indentation compiler warning with clangBiswapriyo Nath2025-08-261-2/+5
|/ | | | | | This commit fixes the following compiler warning. cacheiterators.h:423:54: warning: misleading indentation; statement is not part of the previous 'if' [-Wmisleading-indentation]
* Merge branch 'optimizations' into 'main'Julian Andres Klode2025-08-262-13/+10
|\ | | | | | | | | debListParser: Cache `essential` and `myArch` more See merge request apt-team/apt!503
| * debListParser: Cache `essential` and `myArch` moreJulian Andres Klode2025-08-262-13/+10
|/ | | | | | | | | | | | | | | | | | | Lookup these variables in the constructor once, rather than once per package. This requires a bit of care as debListParser::UsePackage() defaults to "all" for essential when unset, hence we simply change its == "all" comparisons to == "all" || .empty().# This removes any per-paragraph configuration lookups from the file parser. Also parse myArch from ParseProvides down to ParseDepends() as that call ended up causing it to query APT::Architecture *again* since the function we call is static. Together, the removed config lookups safe about 2.3% of cache generation runtime.
* Merge branch 'zh_CN-3.1.3' into 'main'Julian Andres Klode2025-08-261-19/+12
|\ | | | | | | | | Update Simplified Chinese translation See merge request apt-team/apt!504