summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* reenable pipelining via hashsum reordering supportDavid Kalnischkies2014-05-095-65/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | Now that methods have the expected hashes available they can check if the response from the server is what they expected. Pipelining is one of those areas in which servers can mess up by not supporting it properly, which forced us to disable it for the time being. Now, we check if we got a response out of order, which we can not only use to disable pipelining automatically for the next requests, but we can fix it up just like the server responded in proper order for the current requests. To ensure that this little trick works pipelining is only attempt if we have hashsums for all the files in the chain which in theory reduces the use of pipelining usage even on the many servers which work properly, but in practice only the InRelease file (or similar such) will be requested without a hashsum – and as it is the only file requested in that stage it can't be pipelined even if we wanted to. Some minor annoyances remain: The display of the progress we have doesn't reflect this change, so it looks like the same package gets downloaded multiple times while others aren't at all. Further more, partial files are not supported in this recovery as the received data was appended to the wrong file, so the hashsum doesn't match. Both seem to be minor enough to reenable pipelining by default until further notice through to test if it really solves the problem. This therefore reverts commit 8221431757c775ee875a061b184b5f6f2330f928.
* tell download methods the expected hashesDavid Kalnischkies2014-05-093-0/+13
| | | | | | Now that we have all hashes in the acquire system, pass the info down to the methods, so that it can use it in the request and/or to precheck the response.
* promote ExpectedHashes to a pkgAcquire::Item memberDavid Kalnischkies2014-05-092-102/+40
| | | | | | Beside being another big API break with hopefully zero fallout in reality it avoids having the same member and helper code in each and every subclass.
* deal with hashes in ftparchive more dynamic as wellDavid Kalnischkies2014-05-095-300/+199
| | | | | | | | | | | Now that libapts acquire system happily passes around hashes and can be made to support new ones without an ABI break in the future, we can free ftparchive from all the deprecation warnings the last commit introduced for it. The goal here isn't to preserve ABI as we have none to keep here, but to help avoiding introduction problems of 'new' hashes later as bugs creep into the copy&paste parts, so short/less of them is good.
* use HashStringList in the acquire systemDavid Kalnischkies2014-05-0920-361/+507
| | | | | | | | | | | | | It is not very extensible to have the supported Hashes hardcoded everywhere and especially if it is part of virtual method names. It is also possible that a method does not support the 'best' hash (yet), so we might end up not being able to verify a file even though we have a common subset of supported hashes. And those are just two of the cases in which it is handy to have a more dynamic selection. The downside is that this is a MAJOR API break, but the HashStringList has a string constructor for compatibility, so with a bit of luck the few frontends playing with the acquire system directly are okay.
* use 'best' hash for source authenticationDavid Kalnischkies2014-05-095-158/+385
| | | | | | | | | | | | | | Collect all hashes we can get from the source record and put them into a HashStringList so that 'apt-get source' can use it instead of using always the MD5sum. We therefore also deprecate the MD5 struct member in favor of the list. While at it, the parsing of the Files is enhanced so that records which miss "Files" (aka MD5 checksums) are still searched for other checksums as they include just as much data, just not with a nice and catchy name. LP: 1098738
* add a simple container for HashStringsDavid Kalnischkies2014-05-093-28/+239
| | | | | | | | APT supports more than just one HashString and even allows to enforce the usage of a specific hash. This class is intended to help with storage and passing around of the HashStrings. Git-Dch: Ignore
* tests: be able to disable "Fetched …" statistics messageDavid Kalnischkies2014-05-093-1/+5
| | | | | | | | The line contains everchanging execution statistics which is harmful for testcases as they need to filter out such lines, but this is hard so we can just add an option to disable them instead and be done. Git-Dch: Ignore
* use a std::vector instead of hardcoded arrayDavid Kalnischkies2014-05-081-41/+39
| | | | | | | | Arrays with predefined lengths are very fragile as they are likely forgotten in future changes and the size in this case is dynamic making it even more dangerous. Git-Dch: Ignore
* mark as Automatic/Downloadable pure as gcc suggestsDavid Kalnischkies2014-05-081-2/+2
| | | | | Git-Dch: Ignore Reported-By: gcc
* make test independent from the actual Install-SizeDavid Kalnischkies2014-05-081-2/+2
| | | | Git-Dch: Ignore
* fix apt-config test now that PATH changed in 8c617819David Kalnischkies2014-05-081-1/+1
| | | | Git-Dch: Ignore
* apt-pkg/deb/debindexfile.cc: do not hardcode dpkgMichael Vogt2014-05-081-1/+2
|
* apt-private/acqprogress.cc: do not show file size on IMSHit, it wasn't ↵Michael Vogt2014-05-081-2/+0
| | | | fetched, so why bother
* Revert "fix test-bug-602412-dequote-redirect by removing the aptget update ↵Michael Vogt2014-05-081-4/+1
| | | | | | size information" This reverts commit 773642528b6d9858c2c68ada42705ea71c8db37e.
* Merge remote-tracking branch 'mvo/feature/build-dep-dsc2' into ↵Michael Vogt2014-05-0812-8/+286
|\ | | | | | | | | | | | | | | | | debian/experimental Conflicts: apt-pkg/deb/debindexfile.cc apt-pkg/deb/debindexfile.h apt-pkg/deb/debsrcrecords.cc
| * add support for apt-get build-dep unpacked-source-dirMichael Vogt2014-04-254-1/+70
| |
| * create debIFTypeDscFile typeMichael Vogt2014-04-248-16/+89
| |
| * add support for apt-get build-dep foo.dscMichael Vogt2014-04-226-3/+141
| |
* | Merge remote-tracking branch 'mvo/bugfix/update-progress-reporting' into ↵Michael Vogt2014-05-081-3/+3
|\ \ | | | | | | | | | debian/experimental
| * | update test-apt-progress-fdMichael Vogt2014-05-081-3/+3
| | |
| * | Merge remote-tracking branch 'upstream/debian/sid' into ↵Michael Vogt2014-05-081-14/+4
| |\ \ | | | | | | | | | | | | bugfix/update-progress-reporting
* | \ \ Merge branch 'debian/sid' into debian/experimentalMichael Vogt2014-05-081-14/+4
|\ \ \ \ | | |/ / | |/| |
| * | | Merge remote-tracking branch 'mvo/feature/apt-ftparchive-srccache2' into ↵Michael Vogt2014-05-081-14/+4
| |\ \ \ | | | | | | | | | | | | | | | debian/sid
| | * | | fix regression from commit 215b0fafMichael Vogt2014-05-081-14/+4
| | | | |
* | | | | Merge remote-tracking branch 'mvo/bugfix/update-progress-reporting' into ↵Michael Vogt2014-05-0816-202/+721
|\ \ \ \ \ | | |_|/ / | |/| | | | | | | | debian/experimental
| * | | | check for UnfetchedReleaseFiles when calculating the update percent valueMichael Vogt2014-05-081-4/+9
| | | | |
| * | | | Merge remote-tracking branch 'upstream/debian/sid' into ↵Michael Vogt2014-05-0873-57863/+58276
| |\| | | | | | | | | | | | | | | | | | bugfix/update-progress-reporting
| | * | | show progress in run-testsMichael Vogt2014-05-071-1/+2
| | | | |
| | * | | Merge remote-tracking branch 'mvo/feature/apt-ftparchive-srccache2' into ↵Michael Vogt2014-05-0713-197/+708
| | |\| | | | | | | | | | | | | | | | | debian/sid
| | | * | ensure "--db" also works with the new srcpkgdbMichael Vogt2014-04-073-2/+35
| | | | |
| | | * | refactor _InitQuery()Michael Vogt2014-04-042-9/+22
| | | | |
| | | * | ensure clean worksMichael Vogt2014-04-044-10/+42
| | | | |
| | | * | refactor to make OpenFile/OpenDebFile more robustMichael Vogt2014-04-041-120/+110
| | | | |
| | | * | add test for binary cachedb and contents generationMichael Vogt2014-04-043-3/+95
| | | | |
| | | * | Implement CacheDB for source packages in apt-ftparchiveMichael Vogt2014-04-0412-108/+459
| | | | |
| | * | | Merge remote-tracking branch 'donkult/debian/sid' into debian/sidMichael Vogt2014-05-071-0/+2
| | |\ \ \
| | | * | | initialize Verify in second pkgAcqIndex constructorDavid Kalnischkies2014-04-281-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc reports in testcase ./test-bug-596498-trusted-unsigned-repo: apt-pkg/acquire-item.cc:1059:7: runtime error: load of value 234, which is not a valid value for type 'bool' This happens as the bool Verify is initialized only in one of the two constructors of the pkgAcqIndex class. It isn't a problem through as the verification controlled by this flag is optional and used to fail early on garbage files (like network portal pages) instead of later on in the hashsum verification or while parsing (the then untrusted) file. Reported-By: gcc-4.9 -fsanitize=undefined
* | | | | | fix testsMichael Vogt2014-05-072-3/+3
| | | | | |
* | | | | | add BUILDDIRECTORY to PATH in the testsMichael Vogt2014-05-071-1/+2
| | | | | |
* | | | | | fix some compile errors in the now enabled #if (APT_PKG_MAJOR >= 4 && ↵Michael Vogt2014-05-076-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | APT_PKG_MINOR < 13)
* | | | | | apt-pkg/contrib/macros.h: bump library version to 4.13Michael Vogt2014-05-071-1/+1
| | | | | |
* | | | | | fix test-bug-602412-dequote-redirect by removing the aptget update size ↵Michael Vogt2014-05-071-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | information
* | | | | | Merge remote-tracking branch 'mvo/bugfix/update-progress-reporting' into ↵Michael Vogt2014-05-077-32/+127
|\| | | | | | | | | | | | | | | | | | | | | | | debian/experimental
| * | | | | Merge branch 'debian/sid' into bugfix/update-progress-reportingMichael Vogt2014-05-07139-41449/+41785
| |\ \ \ \ \
| | * \ \ \ \ Merge remote-tracking branch 'upstream/debian/sid' into debian/sidMichael Vogt2014-05-0585-38398/+38580
| | |\ \ \ \ \
| * | | | | | | pass Target/MetaIndexParser around into pkgAcqDiffIndex so that this can be ↵Michael Vogt2014-04-172-22/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | used to create a proper pkgAcqIndex() with size information
| * | | | | | | calculate Percent as part of pkgAcquireStatus to provide a weighted percent ↵Michael Vogt2014-04-164-18/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for both items and bytes
| * | | | | | | use correct compression extension when loading the size of the size into the ↵Michael Vogt2014-04-161-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fetcher
| * | | | | | | add Debug::acquire::progress debug option and fixme for index file loading ↵Michael Vogt2014-04-162-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with the correct extension