Age | Commit message (Collapse) | Author |
|
Having every item having its own code to verify the file(s) it handles
is an errorprune process and easy to break, especially if items move
through various stages (download, uncompress, patching, …). With a giant
rework we centralize (most of) the verification to have a better
enforcement rate and (hopefully) less chance for bugs, but it breaks the
ABI bigtime in exchange – and as we break it anyway, it is broken even
harder.
It shouldn't effect most frontends as they don't deal with the acquire
system at all or implement their own items, but some do and will need to
be patched (might be an opportunity to use apt on-board material).
The theory is simple: Items implement methods to decide if hashes need to
be checked (in this stage) and to return the expected hashes for this
item (in this stage). The verification itself is done in worker message
passing which has the benefit that a hashsum error is now a proper error
for the acquire system rather than a Done() which is later revised to a
Failed().
|
|
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.
|
|
|
|
Git-Dch: Ignore
|
|
|
|
|
|
into feature/source-deb822
Conflicts:
test/integration/test-apt-sources-deb822
|
|
|
|
|
|
|
|
|
|
debian/experimental-no-abi-break
|
|
|
|
debian/experimental-no-abi-break
|
|
|
|
|
|
|
|
|
|
|
|
Have a similar ParseStanza() to the current ParseLine().
Rename the Architectures options in deb822 to make it more
user friendly
|
|
|
|
Rework also uncovers two FIXMEs
Git-Dch: Ignore
|
|
|
|
|
|
|
|
|