summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-05-09reenable pipelining via hashsum reordering supportDavid Kalnischkies
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.
2014-05-09tell download methods the expected hashesDavid Kalnischkies
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.
2014-05-09promote ExpectedHashes to a pkgAcquire::Item memberDavid Kalnischkies
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.
2014-05-09deal with hashes in ftparchive more dynamic as wellDavid Kalnischkies
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.
2014-05-09use HashStringList in the acquire systemDavid Kalnischkies
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.
2014-05-09use 'best' hash for source authenticationDavid Kalnischkies
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
2014-05-09add a simple container for HashStringsDavid Kalnischkies
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
2014-05-09tests: be able to disable "Fetched …" statistics messageDavid Kalnischkies
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
2014-05-08use a std::vector instead of hardcoded arrayDavid Kalnischkies
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
2014-05-08mark as Automatic/Downloadable pure as gcc suggestsDavid Kalnischkies
Git-Dch: Ignore Reported-By: gcc
2014-05-08make test independent from the actual Install-SizeDavid Kalnischkies
Git-Dch: Ignore
2014-05-08fix apt-config test now that PATH changed in 8c617819David Kalnischkies
Git-Dch: Ignore
2014-05-08apt-pkg/deb/debindexfile.cc: do not hardcode dpkgMichael Vogt
2014-05-08apt-private/acqprogress.cc: do not show file size on IMSHit, it wasn't ↵Michael Vogt
fetched, so why bother
2014-05-08Revert "fix test-bug-602412-dequote-redirect by removing the aptget update ↵Michael Vogt
size information" This reverts commit 773642528b6d9858c2c68ada42705ea71c8db37e.
2014-05-08Merge remote-tracking branch 'mvo/feature/build-dep-dsc2' into ↵Michael Vogt
debian/experimental Conflicts: apt-pkg/deb/debindexfile.cc apt-pkg/deb/debindexfile.h apt-pkg/deb/debsrcrecords.cc
2014-05-08Merge remote-tracking branch 'mvo/bugfix/update-progress-reporting' into ↵Michael Vogt
debian/experimental
2014-05-08update test-apt-progress-fdMichael Vogt
2014-05-08Merge remote-tracking branch 'upstream/debian/sid' into ↵Michael Vogt
bugfix/update-progress-reporting
2014-05-08Merge branch 'debian/sid' into debian/experimentalMichael Vogt
2014-05-08Merge remote-tracking branch 'mvo/feature/apt-ftparchive-srccache2' into ↵Michael Vogt
debian/sid
2014-05-08fix regression from commit 215b0fafMichael Vogt
2014-05-08Merge remote-tracking branch 'mvo/bugfix/update-progress-reporting' into ↵Michael Vogt
debian/experimental
2014-05-08check for UnfetchedReleaseFiles when calculating the update percent valueMichael Vogt
2014-05-08Merge remote-tracking branch 'upstream/debian/sid' into ↵Michael Vogt
bugfix/update-progress-reporting
2014-05-07fix testsMichael Vogt
2014-05-07add BUILDDIRECTORY to PATH in the testsMichael Vogt
2014-05-07fix some compile errors in the now enabled #if (APT_PKG_MAJOR >= 4 && ↵Michael Vogt
APT_PKG_MINOR < 13)
2014-05-07apt-pkg/contrib/macros.h: bump library version to 4.13Michael Vogt
2014-05-07show progress in run-testsMichael Vogt
2014-05-07fix test-bug-602412-dequote-redirect by removing the aptget update size ↵Michael Vogt
information
2014-05-07Merge remote-tracking branch 'mvo/bugfix/update-progress-reporting' into ↵Michael Vogt
debian/experimental
2014-05-07Merge remote-tracking branch 'mvo/feature/apt-install-deb' into ↵Michael Vogt
debian/experimental
2014-05-07Merge remote-tracking branch 'mvo/feature/apt-ftparchive-srccache2' into ↵Michael Vogt
debian/sid
2014-05-07Merge remote-tracking branch 'donkult/debian/sid' into debian/sidMichael Vogt
2014-05-07Merge branch 'debian/sid' into debian/experimentalMichael Vogt
Conflicts: apt-pkg/cachefilter.h apt-pkg/contrib/fileutl.cc apt-pkg/contrib/netrc.h apt-pkg/deb/debsrcrecords.cc apt-pkg/init.h apt-pkg/pkgcache.cc debian/apt.install.in debian/changelog
2014-05-07move pkgSourceList::AddMetaIndex() into a private subclass until we decide ↵Michael Vogt
about a good API
2014-05-07rename pkgSourceList::Add() to pkgSourceList::AddMetaIndex()Michael Vogt
2014-05-07Merge branch 'debian/sid' into bugfix/update-progress-reportingMichael Vogt
2014-05-05prepare release 1.0.31.0.3Michael Vogt
2014-05-05Revert "add bash completion for the "apt" command"Michael Vogt
This reverts commit 697c9314c8ba24f3e393b5de11a3fad7adae4bfc. Conflicts: debian/rules
2014-05-05Merge remote-tracking branch 'upstream/debian/sid' into debian/sidMichael Vogt
2014-04-30Only do openpty() if both stdin/stdout are terminalsMichael Vogt
Closes: 746434
2014-04-28initialize Verify in second pkgAcqIndex constructorDavid Kalnischkies
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
2014-04-28Merge branch 'feature/abspath' into feature/apt-install-debMichael Vogt
2014-04-28fix testsMichael Vogt
2014-04-28use flAbsPath()Michael Vogt
2014-04-28Merge branch 'feature/abspath' into feature/apt-install-debMichael Vogt
Conflicts: test/libapt/fileutl_test.cc
2014-04-28add flAbsPath() as a wrapper to realpath()Michael Vogt
2014-04-28use new Popen()Michael Vogt