summaryrefslogtreecommitdiff
path: root/apt-pkg
Commit message (Collapse)AuthorAgeFilesLines
* patterns: Allow more complex wordsJulian Andres Klode2019-08-191-6/+4
| | | | | Only disallow ,() and on the start of a word also ~ and ?. Make sure to include \0 as disallowed.
* patterns: Improve error reporting at end of argument listJulian Andres Klode2019-08-151-1/+3
|
* Add ?virtual patternJulian Andres Klode2019-08-152-0/+10
| | | | This matches any package that does not have versions.
* Add the ?exact-name patternJulian Andres Klode2019-08-152-0/+12
| | | | | | The ?exact-name pattern matches the name exactly, there is no substring matching going on, or any regular expression or fnmatch magic.
* Add ?essential patternJulian Andres Klode2019-08-152-0/+9
| | | | | | This matches all packages where at least one of the versions is marked essential; or well, whenver apt considers a package essential.
* Add ?broken patternJulian Andres Klode2019-08-152-0/+14
| | | | | This matches all packages that have broken dependencies in the installed version or the version selected for install.
* Add ?config-files and ?installed patternsJulian Andres Klode2019-08-152-0/+23
| | | | | | These two are mutually exclusive states of installed-ness. And ?installed package is fully unpacked and configured; a ?config-files package only has config files left.
* Add ?obsolete and ?upgradable patternsJulian Andres Klode2019-08-152-0/+39
| | | | | | | | | These match packages that have no version in a repository, or where an upgrade is available. Notably, ?and(?obsolete,?upgradable) == ?false because an upgradable package is by definition not obsolete.
* Add ?automatic and ?garbage patternsJulian Andres Klode2019-08-152-0/+30
| | | | | | These patterns allow you to identify automatically installed packages, as well as automatically installed packages that are no longer reachable from the manually installed ones.
* Add patterns for the existing CacheFilter::Matcher classesJulian Andres Klode2019-08-151-0/+30
| | | | | | | This implements the basic logic patterns: ?and ?false ?not ?or ?true and the basic package patterns: ?architecture ?name ?x-name-fnmatch
* Add pattern tree parser infra and connect with cacheset and apt listJulian Andres Klode2019-08-155-2/+105
| | | | | This adds a transformation from parse tree into a CacheFilter and connects it with cachesets and the apt list command.
* Add initial support for parsing patterns into parse treesJulian Andres Klode2019-08-152-0/+308
| | | | | | | | | | | | | | | | | Introduce a parser for patterns that generates a parse tree. The language understood by the parser is: pattern = '?'TERM | '?'TERM '(' pattern (',' pattern)* ','? ')' | WORD | QUOTED-WORD TERM = [0-9a-zA-Z-] WORD = [0-9a-ZA-Z-.*^$\[\]_\\] QUOTED_WORD = "..." # you know what I mean This language is context free, which is a massive simplification from aptitude's language, where ?foo(bar) could have two different meanings depending on whether ?foo takes an argument or not.
* Fix segfault in pkgAcquire::Enqueue() with Acquire::Queue-Mode=accessJulian Andres Klode2019-08-151-4/+6
| | | | | | | | | | | | | | | | | In commit 79b1a8298, QueueName() was changed, amongst other things, to exit early when the queue mode was single access, as single access does not need any fancy queue name. The exit became too early though, as Config was not initialized anymore, but the caller was relying on it. Fix QueueName() to always initialize Config and in Enqueue() initialize Config with a nullptr, so if this regresses it's guaranteed to fail harder. Also add a test case - this is very simple, but the first and only test case for access queue mode. Regression-Of: 79b1a82983e737e74359bc306d9edb357c5bdd46 LP: #1839714
* Merge branch 'pu/locking-msg' into 'master'Julian Andres Klode2019-08-051-2/+53
|\ | | | | | | | | Improve locking messaging - pid and name, "do not remove lock file" See merge request apt-team/apt!68
| * Improve locking messaging - pid and name, "do not remove lock file"Julian Andres Klode2019-06-211-2/+53
| | | | | | | | | | | | | | | | | | We want to tell users which process is holding the lock so they can easily understand what's going on, and we want to advise users not to remove the lock file, because ugh, that's bad. Re-initalize the flock structure, in case it got mangled by previous fcntl call.
* | Fix typos reported by codespell in code commentsDavid Kalnischkies2019-07-107-8/+8
| | | | | | | | | | | | | | | | Also in old changelogs, but nothing really user visible like error messages or alike so barely noteworthy. Reported-By: codespell Gbp-Dch: Ignore
* | Apply various suggestions by cppcheckDavid Kalnischkies2019-07-085-12/+12
| | | | | | | | Reported-By: cppcheck
* | Show details about the package with bad ProvidesDavid Kalnischkies2019-07-081-3/+4
| | | | | | | | | | | | | | | | The error messages say only which package it was trying to provide, but not which package & version tried it which can be misleading as to which package (version) is the offender. References: #930256
* | Distribute host-less work based on backlog of the queuesDavid Kalnischkies2019-07-081-44/+66
|/ | | | | | | | | | | | | | | | | Work like applying patches via rred can be performed by many concurrent rred processes, but we can't just spawn new ones forever: We limit us to the number of CPUs which can drive them and reuse existing ones if they have nothing to do at the moment. The problem arises if we have reached the limit of queues and all of them are busy which is more likely to happen on "slow" machines with few CPUs. In this case we opted for random distribution, but that can result in many big files (e.g. Contents) being added to one queue while the others get none or only small files. Ideally we would ask the methods how much they still have to do, but they only know that for the current item, not for all items in the queue, so we use the filesize of the expected result.
* RFC1123StrToTime: Accept const std::string& as first argumentJulian Andres Klode2019-06-175-4/+16
| | | | | | We are converting to std::string anyway by passing to istringstream, and this removes the need for .c_str() in callers.
* policy: Get rid of Pins arrayJulian Andres Klode2019-06-142-20/+13
| | | | Gbp-Dch: ignore
* policy: Remove GetMatch and GetPriority(pkgIterator)Julian Andres Klode2019-06-142-22/+1
| | | | | These functions do not produce any useful results anymore, so it's pointless to keep them around.
* Remove deprecated cacheset methodsJulian Andres Klode2019-06-142-34/+16
| | | | | This mostly turns them private and then overrides the public version with the switch, as recommended.
* Bump cache MajorVersion to 16Julian Andres Klode2019-06-121-1/+1
| | | | | 1.6 was 13, so 1.7 has 14 reserved, and 1.8 has 15 reserved, so let's use 16 for 1.9 for now.
* Adjust code for missing includes/using std::stringJulian Andres Klode2019-06-122-5/+7
|
* Run unifdef -DAPT_{8,9,10,15}_CLEANER_HEADERSJulian Andres Klode2019-06-1248-265/+0
|
* Do not include squashfs file systems in df output.Brian Murray2019-06-111-1/+1
| | | | | LP: #1756595 Fixes Debian/apt#94
* Update symbols and hide some pkgTagSection ABIJulian Andres Klode2019-06-111-2/+2
| | | | Gbp-Dch: ignore
* Merge the ParseDepends functionsJulian Andres Klode2019-06-112-64/+17
|
* Allow comparing string to StringViewJulian Andres Klode2019-06-111-0/+2
|
* Make APT::StringView publicJulian Andres Klode2019-06-1113-239/+31
|
* Merge tag '1.8.2'Julian Andres Klode2019-06-111-1/+1
|\ | | | | | | apt Debian release 1.8.2
| * Unlock dpkg locks in reverse locking orderJulian Andres Klode2019-05-211-1/+1
| | | | | | | | | | | | | | We need to unlock in the reverse order of locking in order to get useful behavior. LP: #1829860
| * Prevent shutdown while running dpkgJulian Andres Klode2019-05-034-0/+67
| | | | | | | | | | | | | | As long as we are running dpkg, keep an inhibitor that blocks us from shutting down. LP: #1820886
* | debmetaindex: Use isspace_ascii() variant to normalize Signed-ByJulian Andres Klode2019-05-071-1/+1
| | | | | | | | | | Using the locale-dependent isspace() function here opens us up to strange locale-dependent behavior.
* | CMake: Enforce "override" use on overriden methodsJulian Andres Klode2019-05-061-1/+1
| | | | | | | | | | This ensures that we do not accidentally stop overriding a method because it's signature changed in an API break.
* | Change soname to libapt-pkg.so.5.90Julian Andres Klode2019-05-061-2/+2
| | | | | | | | | | This is a bit experimental, and we'll go through a few stages before reaching libapt-pkg.so.6.0.
* | cacheset: Remove simple cases of deprecated codeJulian Andres Klode2019-05-062-181/+2
| | | | | | | | | | | | This is missing the ones that are still actively used in cacheset.cc, we need to clean those up too, but they are obviously more tricky.
* | Use debDebFile to get control file instead of dpkg-debJulian Andres Klode2019-05-061-27/+16
| |
* | Merge libapt-inst into libapt-pkgJulian Andres Klode2019-05-068-0/+1115
| |
* | Prevent shutdown while running dpkgJulian Andres Klode2019-05-034-0/+67
| | | | | | | | | | | | | | As long as we are running dpkg, keep an inhibitor that blocks us from shutting down. LP: #1820886
* | apt-pkg: URI: Add 'explicit' to single argument constructorJulian Andres Klode2019-04-303-4/+4
| | | | | | | | | | This needs a fair amount of changes elsewhere in the code, hence this is separate from the previous commits.
* | apt-pkg: hashes: Add 'explicit' to single argument constructorsJulian Andres Klode2019-04-301-5/+5
| | | | | | | | | | This avoids funny code where strings get implicitly converted to HashString or HashStringList.
* | Add 'explicit' to most single argument constructorsJulian Andres Klode2019-04-3012-24/+24
| | | | | | | | | | | | | | | | | | | | | | This prevents implicit conversions that we do not want, such as having a FileFd* being converted to a debListParser. Two cases are not yet handled because they require changes in code using them: 1. The classes in hashes.h 2. The URI class - this one is used quite a lot
* | acq: worker: Move CurrentSize, TotalSize, ResumePoint to CurrentItemJulian Andres Klode2019-04-304-27/+25
| | | | | | | | | | These status fields belong to the current item, move them there. This prepares us for eventually having multiple current items.
* | Don't limit cpu-limited queues to at most 10David Kalnischkies2019-04-161-5/+7
| | | | | | | | | | | | | | | | | | | | | | Queues for processes like rred are not created by hostname but we spawn at most CPU*2 queues to place items in. The problem is that we then proceeded to limit it to at most 10 queues (via QueueHost::Limit) again at the end of the method so that all items (after the first 10 queues are busy) are forcibly placed into a generic catch-all instance which is bad because we don't keep all CPUs we have available busy and worse we end up sheduling the most work to a single one while random distribution was intended.
* | Follow gcc-9 -Wnoexcept suggestion for FileChunk constructorDavid Kalnischkies2019-04-161-1/+1
| | | | | | | | | | | | | | | | warning: but ‘pkgTagFilePrivate::FileChunk::FileChunk(bool, size_t)’ does not throw; perhaps it should be declared ‘noexcept’ [-Wnoexcept] Reported-By: gcc-9 Gbp-Dch: Ignore
* | Merge branch 'pkgconfig' into 'master'Julian Andres Klode2019-04-042-0/+11
|\ \ | | | | | | | | | | | | Add PkgConfig on the apt-pkg and apt-inst libraries See merge request apt-team/apt!20
| * | Add pkg-config files for the apt-pkg and apt-inst librariesCorentin Noël2019-03-082-0/+11
| | | | | | | | | | | | Closes: #439121
* | | Use system-provided triehashJulian Andres Klode2019-03-111-1/+1
|/ /