<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/test/integration/test-apt-update-ims, branch 1.1.exp11</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.1.exp11</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.1.exp11'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2015-06-15T21:35:55Z</updated>
<entry>
<title>condense parallel requests with the same hashes to one</title>
<updated>2015-06-15T21:35:55Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-06-15T21:06:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9d2a8a7388cf3b0bbbe92f6b0b30a533e1167f40'/>
<id>urn:sha1:9d2a8a7388cf3b0bbbe92f6b0b30a533e1167f40</id>
<content type='text'>
It shouldn't be too common, but sometimes people have multiple mirrors
in the sources or otherwise repositories with the same content. Now that
we gracefully can handle multiple requests to the same URI, we can also
fold multiple requests with the same expected hashes into one. Note that
this isn't trying to find oppertunities for merging, but just merges if
it happens to encounter the oppertunity for it.

This is most obvious in the new testcase actually as it needs to delay
the action to give the acquire system enough time to figure out that
they can be merged.
</content>
</entry>
<entry>
<title>show item ID in Hit, Ign and Err lines as well</title>
<updated>2015-06-15T21:35:55Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-06-15T14:41:43Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1eb1836f4b5397497bd34f0cf516e6e4e73117bf'/>
<id>urn:sha1:1eb1836f4b5397497bd34f0cf516e6e4e73117bf</id>
<content type='text'>
Again, consistency is the main sellingpoint here, but this way it is now
also easier to explain that some files move through different stages and
lines are printed for them hence multiple times: That is a bit hard to
believe if the number is changing all the time, but now that it keeps
consistent.
</content>
</entry>
<entry>
<title>treat older Release files than we already have as an IMSHit</title>
<updated>2015-05-18T20:15:06Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-05-18T20:15:06Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6bf93605fdb8e858d3f0a79a124c1d39f760094d'/>
<id>urn:sha1:6bf93605fdb8e858d3f0a79a124c1d39f760094d</id>
<content type='text'>
Valid-Until protects us from long-living downgrade attacks, but not all
repositories have it and an attacker could still use older but still
valid files to downgrade us. While this makes it sounds like a security
improvement now, its a bit theoretical at best as an attacker with
capabilities to pull this off could just as well always keep us days
(but in the valid period) behind and always knows which state we have,
as we tell him with the If-Modified-Since header. This is also why this
is 'silently' ignored and treated as an IMSHit rather than screamed at
the user as this can at best be an annoyance for attackers.

An error here would 'regularily' be encountered by users by out-of-sync
mirrors serving a single run (e.g. load balancer) or in two consecutive
runs on the other hand, so it would just help teaching people ignore it.

That said, most of the code churn is caused by enforcing this additional
requirement. Crisscross from InRelease to Release.gpg is e.g. very
unlikely in practice, but if we would ignore it an attacker could
sidestep it this way.
</content>
</entry>
<entry>
<title>a hit on Release files means the indexes will be hits too</title>
<updated>2015-04-18T23:13:10Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-04-12T15:08:46Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ba6b79bd0090077724fa1272ea4d3a31706fcd5a'/>
<id>urn:sha1:ba6b79bd0090077724fa1272ea4d3a31706fcd5a</id>
<content type='text'>
If we get a IMSHit for the Transaction-Manager (= the InRelease file or
as its still supported fallback Release + Release.gpg combo) we can
assume that every file we would queue based on this manager, but already
have locally is current and hence would get an IMSHit, too. We therefore
save us and the server the trouble and skip the queuing in this case.
Beside speeding up repetative executions of 'apt-get update' this way we
also avoid hitting hashsum errors if the indexes are in fact already
updated, but the Release file isn't yet as it is the case on well
behaving mirrors as Release files is updated last.

The implementation is a bit harder than the theory makes it sound as we
still have to keep reverifying the Release files (e.g. to detect now expired
once to avoid an attacker being able to silently stale us) and have to
handle cases in which the Release file hits, but some indexes aren't
present (e.g. user added a new foreign architecture).
</content>
</entry>
<entry>
<title>fix variable naming typo used in debug output</title>
<updated>2014-11-08T13:33:25Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-11-08T13:23:18Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=20801f613690b330c79b4f7a30dc3ff52b722468'/>
<id>urn:sha1:20801f613690b330c79b4f7a30dc3ff52b722468</id>
<content type='text'>
Git-Dch: Ignore
</content>
</entry>
<entry>
<title>promote filesize to a hashstring</title>
<updated>2014-10-24T21:54:59Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-10-23T14:54:00Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=23397c9d7d4d455461176600bb45c81185493504'/>
<id>urn:sha1:23397c9d7d4d455461176600bb45c81185493504</id>
<content type='text'>
It is a very simple hashstring, which is why it isn't contributing to
the usability of a list of them, but it is also trivial to check and
calculate, so it doesn't hurt checking it either as it can combined even
with the simplest other hashes greatly complicate attacks on them as you
suddenly need a same-size hash collision, which is usually a lot harder
to achieve.
</content>
</entry>
<entry>
<title>testcases: do not allow warnings in testsuccess</title>
<updated>2014-10-20T08:37:46Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-10-20T08:23:41Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4fa34122cbe347d21b3a162ff2fa75dd2e73c3a8'/>
<id>urn:sha1:4fa34122cbe347d21b3a162ff2fa75dd2e73c3a8</id>
<content type='text'>
Adds a new testwarning which tests for zero exit and the presents of a
warning in the output, failing if either is not the case or if an error
is found, too. This allows us to change testsuccess to accept only
totally successful executions (= without warnings) which should help
finding regressions.

Git-Dch: Ignore
</content>
</entry>
<entry>
<title>check lists/ content in tests doing rollback</title>
<updated>2014-10-20T08:37:46Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-10-18T20:46:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=846bc058cb0c1bf7ce7c2fb30b9c277e96e9eaf7'/>
<id>urn:sha1:846bc058cb0c1bf7ce7c2fb30b9c277e96e9eaf7</id>
<content type='text'>
Git-Dch: Ignore
</content>
</entry>
<entry>
<title>autorun permission tests for all apt-get update calls</title>
<updated>2014-10-20T08:37:46Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-10-18T18:00:25Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ab25bf1f08ca605d3eb4c05619e8df495ccca30a'/>
<id>urn:sha1:ab25bf1f08ca605d3eb4c05619e8df495ccca30a</id>
<content type='text'>
Adds some infrastructure to run tests automatically for certain
commands. The first command being 'apt-get update' (and 'apt update')
which check for correct permission and owner of the files in lists/.

Git-Dch: Ignore
</content>
</entry>
<entry>
<title>Add new configallowinsecurerepositories to the test framework</title>
<updated>2014-10-14T15:00:56Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@ubuntu.com</email>
</author>
<published>2014-10-14T15:00:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d4f4bcf76bb2035b7df370a82b081384140b3083'/>
<id>urn:sha1:d4f4bcf76bb2035b7df370a82b081384140b3083</id>
<content type='text'>
Add a new configallowinsecurerepositories that controls the value
of Acquire::AllowInsecureRepositories for the tests. Set it to
"false" for most of the testsuite and only enable it where its
really needed. We want to switch the default for this post-jessie.
</content>
</entry>
</feed>
