summaryrefslogtreecommitdiff
path: root/apt-pkg/contrib
Commit message (Collapse)AuthorAgeFilesLines
* apt-pkg: methods: fixed many minor memleaksHerman Semenoff2026-05-011-0/+1
| | | | Static analysis has shown that there are many minor memleaks.
* apt: modernize to make_unique C++17Herman Semenoff2026-04-081-1/+1
| | | | | | | References: - https://stackoverflow.com/questions/79700634/pros-and-cons-of-make-unique-vs-direct-constructor-call-in-c17 - https://towardsdev.com/why-std-make-unique-beats-new-in-modern-c-7e2ba653737e - https://www.sololearn.com/en/Discuss/3334779/where-make_unique-is-better-than-unique_ptrraw-pointer
* apt: push to emplace C++11 if possibleHerman Semenoff2026-04-082-2/+2
| | | | | | References: - https://www.reddit.com/r/cpp_questions/comments/pm63yx/why_clangtidy_says_use_emplace_back_instead_of/ - https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-emplace.html
* apt: funcs called with a string literal consisting of a single characterHerman Semenoff2026-04-081-2/+2
| | | | | | | | Benchmark: - https://stackoverflow.com/questions/62058906/why-my-performance-benchmark-gives-me-wrong-results References: - https://clang.llvm.org/extra/clang-tidy/checks/performance/prefer-single-char-overloads.html
* hashes: Use std::span instead of std::basic_string_viewJulian Andres Klode2026-04-071-2/+2
| | | | | | | | | std::basic_string_view should not be initialized locally, only in the std library. Replace it with a simple span instead. This should fix compilation with LLVM 18+. Supersedes: https://salsa.debian.org/apt-team/apt/-/merge_requests/511
* Copyright changesJulian Andres Klode2026-03-021-1/+1
|
* Introduce JSONL performance counter loggingJulian Andres Klode2026-02-101-0/+153
| | | | | | | | Introduce a scoped object that starts measuring performance counters and then dumps them into a JSONL file for later analysis. Add performance contexts for APT::Solver and pkgDepCache::Init() as starting points.
* 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.
* weakptr: Simplify destructor to use range-based forJulian Andres Klode2025-11-101-3/+2
| | | | Explicit iterators considered harmful :)
* Move split() to APT::String::Split()Julian Andres Klode2025-10-252-0/+12
| | | | This splits based upon contiguous whitespace as separators
* configuration: Add MoveSubTree with overwrite=falseJulian Andres Klode2025-10-252-3/+13
|
* Correctly append or remove FD_CLOEXECJulian Andres Klode2025-10-201-2/+6
| | | | | 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-201-31/+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-201-0/+1
|
* ExecFork: Use close_range() if availableJulian Andres Klode2025-10-201-2/+32
| | | | | | | | | | | | | 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!
* Include standard headers to fix clang compiler errorBiswapriyo Nath2025-06-181-0/+1
| | | | | | | | 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'
* Fix error handling with getlineWalter Lozano2025-05-192-2/+2
| | | | | | | | | | | | | | The function getline is used to read data from different streams, however, the error handling is not accurate. From the man page, getline returns -1 on failure and sets errno accordingly, but the current implementation only checks errno to see if there was a failure. With this approach, in case getline returns success but also sets errno it is consider and error. Fix the issue but also checking the return value of getline. Signed-off-by: Walter Lozano <walter.lozano@collabora.com>
* refactor: Deduplicate and Move SectionInSubTree to ConfigurationJulian Andres Klode2025-02-182-0/+36
| | | | | Deduplicate the copies in a central one, mark it unavailable to external users.
* strutl: Add missing #include <cstdint> [gcc 15]Julian Andres Klode2025-02-181-0/+1
| | | | Closes: #1096322
* Add missing #include <string_view>Julian Andres Klode2025-02-153-0/+3
|
* fileutl: Convert FileFd::d to std::unique_ptrJulian Andres Klode2025-02-152-18/+14
|
* Remove some more unused functionsJulian Andres Klode2025-02-152-51/+0
| | | | Final ABI cleanup before unstable?!
* Run unifdef -DAPT_PKG_ABI=700 againJulian Andres Klode2025-02-153-34/+0
| | | | | main picked up a couple new ifdefs since the branch started; so clean them up again.
* StartsWithGPGClearTextSignature(): don't keep un-written-to pointer to ↵наб2025-02-141-1/+1
| | | | constant string in .data
* flAbsPath(): try to re-use storage of argumentнаб2025-02-141-2/+2
|
* Take const& in flNotFile()наб2025-02-142-2/+2
|
* Take const& in GetLock()наб2025-02-142-2/+2
|
* Take const& in Rename()наб2025-02-142-2/+2
|
* Take const& in {,Real}FileExists()наб2025-02-142-4/+4
|
* string{=> _view} flNotDir(string{=> _view}). Configuration::{Cnd,}Set(Value: ↵наб2025-02-144-12/+12
| | | | string{=> _view})
* Return string_view from Apt::String::Strip(). Take string_view in ↵наб2025-02-143-17/+17
| | | | VectorizeString(), StringSplit(), SubstVar()
* APT::String::* should take string_viewsнаб2025-02-142-26/+13
|
* string{=> _view} flExtension(string{=> _view})наб2025-02-142-8/+8
|
* Drop APT::StringViewнаб2025-02-142-172/+1
|
* APT::StringView -> std::string_view [textonly]наб2025-02-142-6/+5
|
* Bump ABI to 7.0Julian Andres Klode2025-02-141-1/+1
|
* sqv, gpgv: Do not fail if Dir::Etc::Trusted is set and trusted.gpg.d is missingJulian Andres Klode2025-01-221-2/+10
| | | | | | | | | | This should remain a warning case for now. So push the errors to a stack and see if we can find any file. Explictly warn again if Dir::Etc::trusted is set, as it is like _super_ deprecated. Reported-By: Cyril Brulebois <kibi@debian.org> in Bug#1032131
* Remove superseded warning about trusted.gpg fallbackJulian Andres Klode2025-01-211-2/+2
| | | | | | | | | | This warning has been superseded by the missing sources.list notice (which will also become a warning shortly) Adjust the sqv exit to avoid introducing a new spurious "No good signature" that we did not reach before. moo
* proxy: Avoids triggering bounds check in std::string_viewJulian Andres Klode2025-01-141-1/+1
| | | | | Check for empty string_view instead of first byte being '\0'; this otherwise breaks when compiling with higher ABI version.
* Remove leftovers from ftp and rsh/ssh methods removalDavid Kalnischkies2025-01-051-1/+1
| | | | References: fd3684cdbc165ceaa635ed19fcbd231f509b0179
* Remove leftovers of the apt-key removalDavid Kalnischkies2025-01-051-2/+0
| | | | References: a00fbbdb28cc31e78882301c2efe7218583ab4cb
* Drop unused short form APT_IGNORE_DEPRECATEDDavid Kalnischkies2025-01-051-6/+1
| | | | | | Even the long form isn't used much (or currently not at all), but given that the short form is not really working even if it would be used… lets drop it and use the long form if we have to.
* Drop usage of APT_MUSTCHECKDavid Kalnischkies2025-01-053-6/+6
| | | | | nodiscard is a C++17 feature and already used (not just due to my recent changes) in our codebase, so lets drop the last remaining holdouts.
* Drop usage of APT_UNUSEDDavid Kalnischkies2025-01-052-3/+3
|
* Drop APT_DEPRECATED usageDavid Kalnischkies2025-01-052-5/+5
| | | | | | | | C++14 includes the standard attribute, so we can use that instead. Note that we drop the deprecation of {Pkg,Dep}Iterator::operator<< as this is ignored (a friends declaration must be a definition to have attributes) very noisily by GCC >= 12 and the methods can be somewhat useful in debugging if you are to lazy to get APT::Pretty{Pkg,Dep}.
* Drop APT_NORETURN usageDavid Kalnischkies2025-01-053-8/+11
| | | | | [[noreturn]] is a C++11 feature and so we can just use it unconditionally.
* Drop unused FLAG macro and friendsDavid Kalnischkies2025-01-051-6/+4
| | | | | They are rather generic names for macros and have no usage in our codebase at all, so lets remove them for good now.
* Drop the remaining usage of APT_ARRAY_SIZEDavid Kalnischkies2025-01-051-4/+1
| | | | | | That macro is not that useful as it might perhaps once was. Lets prepare dropping it now in favour of more standard ways of working with arrays now.
* Drop usage of macro APT_OVERRIDE for simple overrideDavid Kalnischkies2025-01-053-240/+247
| | | | | | | | | We were rather inconsistent in using it and as our public headers contain deduction guides (a c++17 feature) it seems silly to try to hide a c++11 feature in a macro, so lets stop this charade and drop the macro and while we are changing all these lines lets apply [[nodiscard]] (another c++17 feature) and other suggestions from clang-tidy and formatting for a little more consistency.
* Try stomping a little less on global macro namespaceDavid Kalnischkies2025-01-051-3/+3
|