summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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
| * Update Simplified Chinese translationTianyu Chen2025-08-261-19/+12
|/
* German program translation updateHelge Kreutzmann2025-08-261-3/+3
| | | | Closes: #1111875
* solver3: Allow any downloadable version to mark a package as not obsoleteJulian Andres Klode2025-08-262-6/+21
| | | | | | | | | | | | Lots of people have pinned an older version that is no longer installable, or more common yesterday, we saw a lot of people who seemingly manually installed a newer version of a deb than in the repositories, causing the package to be considered obsolete, which does not make much sense. Oops: 4c39d922-410f-11f0-bbf9-fa163ec44ecd Oops: a64054f6-4140-11f0-bbfd-fa163ec44ecd Oops: a32196c1-661d-11f0-a97c-fa163ec8ca8c
* solver3: Sort dependency targets against current alternativeJulian Andres Klode2025-08-263-14/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of inadvertently sorting dependency targets against the first alternative in an or group, sort them against the current alternative as we should. Otherwise we ended up sorting gnome-shell | notification-daemon With Package: notification-daemon Package: awesome Provides: notification-daemon into gnome-shell | awesome | notification-daemon <-we sorted this part wrongly-> This fixes a minor difference in test-release-candidate-switching in one case, but not the other where the difference was actually caused by the loss of install argument ordering information in the new solver, so just flip the arguments so both solvers produce the same outcome.
* Portuguese manpages translation updateAmérico Monteiro2025-08-261-34/+44
| | | | Closes: #1111124
* doc: Remove <filename> inside <arg>Julian Andres Klode2025-08-261-1/+1
| | | | | xmllint 2.14 reports that filename cannot be used inside of arg, breaking the CI. Remove the filename element.
* Merge branch 'apt/why/not' into 'main'Julian Andres Klode2025-08-161-3/+3
|\ | | | | | | | | completion: apt why/why-not See merge request apt-team/apt!505
| * completion: apt why/why-notChristopher Bock2025-08-161-3/+3
|/
* Release 3.1.43.1.4Julian Andres Klode2025-08-116-7/+28
|
* Release 3.1.33.1.3Julian Andres Klode2025-06-245-6/+31
|
* Merge branch '3.0.2-translations' into 'main'Julian Andres Klode2025-06-246-526/+353
|\ | | | | | | | | Cherry pick translations for 3.0.2 (to be shipped in 3.0.3) into main See merge request apt-team/apt!501
| * Czech program translation updateMiroslav Kure2025-06-241-18/+12
| | | | | | | | | | | | | | Minor edit to backport the translation (s/apt/apt-get/ in the update message). Closes: #1106155
| * German translation updateJulian Andres Klode2025-06-241-10/+10
| | | | | | | | | | | | | | Align the grammar in a way that respects the vision of the short user experience. Closes: #1106116
| * Dutch manpages translation updateFrans Spiesschaert2025-06-241-37/+19
| | | | | | | | Closes: #1104313
| * Dutch program translation updateFrans Spiesschaert2025-06-241-28/+18
| | | | | | | | Closes: #1104312
| * French manpages translation updatebubub2025-06-241-321/+223
| | | | | | | | Closes: #1103760
| * Portuguese manpages translation updateAmérico Monteiro2025-06-241-112/+71
|/ | | | Closes: #1103640
* Merge branch 'tls-closed-assertion' into 'main'Julian Andres Klode2025-06-241-2/+1
|\ | | | | | | | | tls: Do not trigger assertion after closing connection See merge request apt-team/apt!496
| * tls: Do not trigger assertion after closing connectionJulian Andres Klode2025-06-241-2/+1
|/ | | | | | | | | | | In HasPending(), we assert that there is an open connection object (ssl), but it seems we can end up calling HasPending() after calling Close(). Therefore, remove the assertion and include ssl != nullptr as the first requirement. Closes: #1107827
* Merge branch 'lp2003851' into 'main'Julian Andres Klode2025-06-242-3/+32
|\ | | | | | | | | Fix stuck acquire queues on partial server errors See merge request apt-team/apt!500
| * Fix stuck acquire queues on partial server errorsJulian Andres Klode2025-06-242-3/+32
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a server responds with two InRelease files, but one is good, and the other indicates a temporary error, we queued the other indices from the good repository for downloading and then queued the retry. The resulting queue ended up with items having fetchAfter=0 before the item with fetchAfter=<something>, causing the Run() loop to not detect a stuck queue. Change the order of the queue such that the highest retry-after items comes first; this ensures that we always see stuck queues. This of course changes the behavior of retries in that if one file fails temporarily we block the entire server. This does seem more beneficial in the common case - if one file fails, probably all of them fail, and there's no point bombarding the server with requests for indices from good repositories until all have failed. The actual root cause is more that the remaining items are Enqueued like this: 1. Enqueue jammy/InRelease (delayed) 2. Enqueue jammy-updates/main all Packages The resulting queue ended up being: jammy-updates/main all Packages jammy/InRelease (delayed) But Enqueue() only calls Cycle() when there are no items in the queue already - after all, any item that is already running will call Cycle() eventually. Or so was the case until we added the retry-after handling. It's unclear why we don't Cycle() all the time when enqueuing a new item, given that our pipeline might not be filled yet, and we could send the request to the server while waiting for data on a running item. Trying to always Cycle() however led to regressions that still need investigating. Given that, this solution certainly is the more easy to reason about one. LP: #2003851
* Merge branch 'include-std-headers' into 'main'Julian Andres Klode2025-06-184-0/+4
|\ | | | | | | | | Include standard headers to fix clang compiler error See merge request apt-team/apt!497
| * Include standard headers to fix clang compiler errorBiswapriyo Nath2025-06-184-0/+4
|/ | | | | | | | This commit fixes the following compiler errors. apt-pkg/acquire.cc:833:51: error: no template named 'function' in namespace 'std' apt-pkg/contrib/error.cc:198:59: error: no member named 'front_inserter' in namespace 'std' apt-pkg/solver3.h:44:22: error: no template named 'is_trivially_constructible_v' in namespace 'std' methods/http.cc:1029:24: error: no member named 'inserter' in namespace 'std'
* Release 3.1.23.1.2Julian Andres Klode2025-06-103-2/+8
|
* solver3: Avoid FTBFS with g++ 14.2 on arm{el,hf}Julian Andres Klode2025-06-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With an explicit {} initialization, g++ 14.2 on armhf and armel seems to generate the default constructor for the vector too early, or in the first place, outside of solver3.cc where the constructor is defined. Without {}, this compiles again. In file included from /usr/include/c++/14/vector:66, from /<<PKGBUILDDIR>>/obj-arm-linux-gnueabihf/include/apt-pkg/cachefilter.h:14: /usr/include/c++/14/bits/stl_vector.h: In instantiation of ‘constexpr std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = APT::Solver::Work; _Alloc = std::allocator<APT::Solver::Work>]’: /usr/include/c++/14/bits/stl_vector.h:531:7: required from here 531 | vector() = default; | ^~~~~~ /usr/include/c++/14/bits/stl_vector.h:369:49: error: invalid use of incomplete type ‘struct APT::Solver::Work’ 369 | _M_impl._M_end_of_storage - _M_impl._M_start); | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ In file included from /<<PKGBUILDDIR>>/apt-pkg/edsp.cc:22: /<<PKGBUILDDIR>>/obj-arm-linux-gnueabihf/include/apt-pkg/solver3.h:87:11: note: forward declaration of ‘struct APT::Solver::Work’ 87 | struct Work; | ^~~~ /usr/include/c++/14/bits/stl_vector.h: In instantiation of ‘constexpr std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = APT::Solver::Solved; _Alloc = std::allocator<APT::Solver::Solved>]’: /usr/include/c++/14/bits/stl_vector.h:531:7: required from here 531 | vector() = default; | ^~~~~~ /usr/include/c++/14/bits/stl_vector.h:369:49: error: invalid use of incomplete type ‘struct APT::Solver::Solved’ 369 | _M_impl._M_end_of_storage - _M_impl._M_start); | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ /<<PKGBUILDDIR>>/obj-arm-linux-gnueabihf/include/apt-pkg/solver3.h:88:11: note: forward declaration of ‘struct APT::Solver::Solved’ 88 | struct Solved; | ^~~~~~
* Release 3.1.13.1.1Julian Andres Klode2025-06-108-9/+44
|
* Revert "doc: Increase visibility of special signs' usage"Julian Andres Klode2025-06-103-9/+9
| | | | | | This reverts commit 66ec0dfad8ac1d4d8646a4734eb9353f3ebc0a91. This creates too much churn in the translation.
* Avoid cast alignment warning in cache string viewJulian Andres Klode2025-06-101-1/+1
| | | | | | | | | | | | | | | | | | The cache allocates strings as uint16_t size; char content[]; char zero; Aligned to the uint16_t. When doing the casting, this causes a warning on some architectures that cannot do unaligned loads, such as armhf. Use __builtin_assume_aligned() to explictly say that the pointer is aligned to 16 bits. This is a bit of a backhanded approach, as the warning seems to be actually avoided by the function returning a void* rather than the assumed alignment, but this is very much self-documenting.
* Merge branch 'solver3' into 'main'Julian Andres Klode2025-06-104-3/+66
|\ | | | | | | | | solver3: various fixes See merge request apt-team/apt!492