summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* add --readonly option for apt-key advDavid Kalnischkies2014-09-273-7/+7
| | | | | | | | Some advanced commands can be executed without the keyring being modified like --verify, so this adds an option to disable the mergeback and uses it for our gpg calling code. Git-Dch: Ignore
* use only one --keyring in gpg interactionsDavid Kalnischkies2014-09-272-46/+116
| | | | | | | | | We were down to at most two keyrings before, but gnupg upstream plans dropping support for multiple keyrings in the longrun, so with a single keyring we hope to be future proof – and 'apt-key adv' isn't a problem anymore as every change to the keys is merged back, so we have now the same behavior as before, but support an unlimited amount of trusted.gpg.d keyrings.
* add --secret-keyring option for apt-keyDavid Kalnischkies2014-09-272-3/+14
| | | | | | | | | For some advanced usecases it might be handy to specify the secret keyring to be used (e.g. as it is used in the testcases), but specifying it via a normal option for gnupg might not be available forever: http://lists.gnupg.org/pipermail/gnupg-users/2013-August/047180.html Git-Dch: Ignore
* allow to specify fingerprints in 'apt-key del'David Kalnischkies2014-09-273-5/+26
|
* add a test for apt-key export{,all}David Kalnischkies2014-09-272-2/+9
| | | | Git-Dch: Ignore
* use apt-key to wrap gpg calls in testcasesDavid Kalnischkies2014-09-271-31/+9
| | | | | | | beside testing apt-key a bit it also avoids duplicating gpghome setup code in apt-key and the test framework Git-Dch: Ignore
* respect --keyring also in merged keyring commandsDavid Kalnischkies2014-09-271-8/+10
| | | | Git-Dch: Ignore
* support gnupg2 as drop-in replacement for gnupgDavid Kalnischkies2014-09-273-88/+122
| | | | | | If both are available APT will still prefer gpg over gpg2 as it is a bit more lightweight, but it shouldn't be a problem to use one or the other (at least at the moment, who knows what will happen in the future).
* delay gnupg setup in apt-key until it is neededDavid Kalnischkies2014-09-271-22/+22
| | | | | | 'apt-key help' and incorrect usage do not need a functioning gnupg setup, as well as we shouldn't try to setup gnupg before we actually test if it is available (and print a message if it is not).
* correct the error messages to refer to apt-key instead of gpgvDavid Kalnischkies2014-09-2746-180/+173
| | | | Git-Dch: Ignore
* use apt-key adv (+ gnupg) instead of gpgv for verifyDavid Kalnischkies2014-09-275-47/+53
| | | | | | | | apt-key does the keyring merge as we need it, so we just call it instead of reimplementing it to do the merging before gpgv. This means we don't use gpgv anymore (we never depended on it explicitly - bad style), but it also means that the message in apt-cdrom add is a bit less friendly as it says loudly "untrusted key", but for a one-time command its okay.
* merge fragment keyrings in apt-key to avoid hitting gpg limitsDavid Kalnischkies2014-09-271-57/+77
| | | | | | | | | | | | | | gnupg has a hardlimit of 40 (at the moment) keyrings per invocation, which can be exceeded with (many) repositories. That is rather misfortune as the longrun goal was to drop gnupg dependency at some point in the future, but this can now be considered missed and dropped. It also means that 'apt-key adv' commands might not have the behaviour one would expect it to have as it mainly operates on a big temporary keyring, so commands modifying keys will break. Doing this was never a good idea anyway through, so lets just hope nothing break too badly. Closes: 733028
* refactor key removal code to reuse it in next stepDavid Kalnischkies2014-09-271-48/+55
| | | | Git-Dch: Ignore
* set a primary-keyring only if we have access to itDavid Kalnischkies2014-09-271-1/+3
|
* support (multiple) arguments properly in apt-keyDavid Kalnischkies2014-09-271-27/+27
|
* only create new trusted.gpg if directory is writeableDavid Kalnischkies2014-09-271-23/+14
|
* all errors should be printed to stderrDavid Kalnischkies2014-09-271-5/+5
| | | | Git-Dch: Ignore
* add a (hidden) --quiet option for apt-keyDavid Kalnischkies2014-09-271-4/+10
|
* rename postrm to apt.postrmDavid Kalnischkies2014-09-273-39/+0
| | | | | | | | | | It helps in identifying its affiliation. Also removes the old postinst which was hidden by apt.postinst for a long time now and would just install a sources.list in edgecases which is probably not a good idea (e.g. on my system /etc/apt/sources.list does not exist). It is better done by the installer of the distro. Git-Dch: Ignore
* remove leftover debug output from multikey softlinkDavid Kalnischkies2014-09-271-1/+0
| | | | Git-Dch: Ignore
* fix: warning: extra ‘;’ [-Wpedantic]David Kalnischkies2014-09-275-13/+13
| | | | | Reported-By: gcc -Wpedantic Git-Dch: Ignore
* fix: Member variable 'X' is not initialized in the constructor.David Kalnischkies2014-09-2713-32/+29
| | | | | Reported-By: cppcheck Git-Dch: Ignore
* fix occurrence typo in tagfile commentDavid Kalnischkies2014-09-271-1/+1
| | | | | Reported-By: codespell Git-Dch: Ignore
* remove outdated and unused po/ChangeLogDavid Kalnischkies2014-09-271-1077/+0
| | | | Git-Dch: Ignore
* add an API for cache filters/matcherDavid Kalnischkies2014-09-272-52/+209
| | | | | | | | | | A lot of code deals with iterating over packages and checking for specific states. At the moment these are all handcrafted inplace, but that makes sharing common code which just differs in the states it checks rather difficult and is error prune. Having an API to construct arbitrary complex filters will come in handy for those. Git-Dch: Ignore
* move PCI::From* methods into CacheSetHelper classDavid Kalnischkies2014-09-272-87/+139
| | | | | | | | | | | | | | The methods itself deal with the helper a lot, so it makes sense to move them to the helper itself, which helps also if we want to override some of these methods, the FromString mentioned in the bugreport being the obvious example. VCI is spared from this change for now as while it would fit with the same reasoning it much heavier entangled with the previous CacheSetHelper change, so moving it now would mean breaking the API. The PCI change is worthwhile on its own though as it is used by VCI. Closes: 686221
* adapt to the new CacheSetHelper APIDavid Kalnischkies2014-09-274-26/+23
| | | | Git-Dch: Ignore
* rework cachesets API to allow future extensionDavid Kalnischkies2014-09-274-154/+494
| | | | | | | | | | | | | | | The introduction of Fnmatch showed that each new selector would require multiple new virtual methods in the CacheSetHelper to work correctly, which isn't that great. We now flip to a single virtual method which handles all cases separated by an enum – as new enum values can be added without an ABI break. Great care was taken to make old code work with the new way of organisation, which means in return that you might be bombarded with deprecation warnings now if you don't adapt, but code should still compile and work as before as can be seen in apt itself with this commit. Git-Dch: Ignore
* add APT::PackageUniverse as a pkgCache wrapperDavid Kalnischkies2014-09-271-0/+38
| | | | Git-Dch: Ignore
* add specialisations for std::vectorDavid Kalnischkies2014-09-271-2/+73
| | | | Git-Dch: Ignore
* mark pkg(All|Dist)Upgrade as deprecatedDavid Kalnischkies2014-09-276-16/+21
| | | | | | | | The comment above their definition marks them already as such, so this is only a formalisation of the deprecation and fixes the occurances we have in our own code together with removing a magic number. Git-Dch: Ignore
* fix progress output for (dist-)upgrade calculationDavid Kalnischkies2014-09-2773-148/+223
| | | | | | | | | | | | | | | | | Previously, we had a start and a done of the calculation printed by higher-level code, but this got intermixed by progress reporting from an external solver or the output of autoremove code… The higherlevel code is now only responsible for instantiating a progress object of its choosing (if it wants progress after all) and the rest will be handled by the upgrade code. Either it is used to show the progress of the external solver or the internal solver will give some hints about its overall progress. The later isn't really a proper progress as it will jump forward after each substep, but that is at least a bit better than before without any progress indication. Fixes also the 'strange' non-display of this progress line in -q=1, while all others are shown, which is reflected by all testcase changes.
* de-duplicate version strings in the cacheDavid Kalnischkies2014-09-271-3/+3
| | | | | | | | | | | | | | | Turns out that version numbers aren't as random as you might guess. In my cache for example, I have: Total package names: 69513 (1390 k) Total package structures: 188259 (9036 k) Total distinct versions: 186345 (13.4 M) Total dependencies: 2052242 (57.5 M) which amounts to 1035873 (10,1 M) strings. Reusing version strings reduces this to 161465 (3.479 k). This comes at a cost of course: Generation is slightly slower, but we are still faster than what we started with and it makes room (also cache size wise) for further changes.
* drop stored StringItems in favor of in-memory mappingsDavid Kalnischkies2014-09-278-124/+57
| | | | | | | | | | | | | | | Strings like Section names or architectures are needed vary often. Instead of writing them each time we need them, we deploy sharing for these special strings. Until now, this was done with a linked list of strings in which we would search, which was stored in the cache. It turns out we can do this just as well in memory as well with a bunch of std::map's. In memory means here that it isn't available anymore if we have a partly invalid cache, but that isn't much of a problem in practice as the status file is compared to the other files we parse very small and includes mostly duplicates, so the space we would gain by storing is more or less equal to the size of the stored linked list…
* count strings more accurately for statsDavid Kalnischkies2014-09-271-14/+39
| | | | | | | | | | So far, only the few strings stored in stringitems were counted, but many more strings are directly inserted into the cache. We account for this now by identifying all these different strings and measure their length. We are still not at the correct size of the cache in 'stats' this way, but we are now again a bit closer. Git-Dch: Ignore
* packages in the cache are sorted by name so noise-freeDavid Kalnischkies2014-09-271-9/+2
| | | | | | | | | | Commit aa0fe657e46b87cc692895a36df12e8b74bb27bb sorts the package names in the hashtable. We make use of this already in these functions, but as a minor sideeffect it also means that we don't have 'noise' anymore between packages belonging to the same group. We therefore don't need to check for a matching name in Grp.FindPkg anymore. Git-Dch: Ignore
* search for pkg names in the cache case-sensitiveDavid Kalnischkies2014-09-271-4/+4
| | | | | | | | | | | Package names have to be lowercase (debian-policy §5.6.1) and in as lowlevel as these method are it would be quiet strange to treat an invalid package "suddently" as a valid one which other tools might or might not accept. If case-insensitivity is really needed the frontend should ensure this rather than these methods waste cpu cycles by default. Git-Dch: Ignore
* deprecate Pkg->Name in favor of Grp->NameDavid Kalnischkies2014-09-275-12/+21
| | | | | | | They both store the same information, so this field just takes up space in the Package struct for no good reason. We mark it "just" as deprecated instead of instantly removing it though as it isn't misleading like Section was and is potentially used in the wild more often.
* Disable Mth.DropPrivsOrDie() in copy.cc for nowMichael Vogt2014-09-261-1/+0
| | | | Dch-Ignore: true
* Remove check for "Translation-" from pkgAcqIndex::Custom600Headers()Michael Vogt2014-09-251-4/+1
| | | | | This unneeded because pkgAcqIndexTrans has its own Custom600Headers() method.
* Revert making pkgAcquire::Item::DescURI() "const"Michael Vogt2014-09-251-12/+12
| | | | | | Revert because its a API change and the gain does not justify the extra work to make the required changes in the consumers of this interface at this point.
* Use /var/empty as the homedir for _aptMichael Vogt2014-09-251-2/+2
| | | | Thanks to Axel Beckert
* releasing package apt version 1.1~exp3Michael Vogt2014-09-242-0/+20
|
* DropPrivs: Document what it doesJulian Andres Klode2014-09-241-1/+11
| | | | Git-Dch: ignore
* DropPrivs: Use APT::Sandbox::User instead of Apt::User::NobodyJulian Andres Klode2014-09-241-3/+3
| | | | Git-Dch: ignore
* DropPrivs: Hard-fail if the user does not existJulian Andres Klode2014-09-241-1/+1
| | | | Git-Dch: ignore
* DropPrivs: Add some comments for the more obscure setuid/setgid functionsJulian Andres Klode2014-09-241-0/+2
| | | | Git-Dch: ignore
* DropPrivs: Move the re-set uid/gid thing to the end of the functionJulian Andres Klode2014-09-241-7/+7
| | | | Git-Dch: ignore
* methods: Fail if we cannot drop privilegesJulian Andres Klode2014-09-248-14/+27
|
* DropPrivs: Improve commentsJulian Andres Klode2014-09-241-8/+7
| | | | Git-Dch: ignore