<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/methods, branch 1.6_beta1</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.6_beta1</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.6_beta1'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2018-02-19T14:56:09Z</updated>
<entry>
<title>use a more standard approach to disable security for cdrom method</title>
<updated>2018-02-19T14:56:09Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2018-01-05T22:47:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d90eb8132961aa481b94e63246a0ed23fc36d182'/>
<id>urn:sha1:d90eb8132961aa481b94e63246a0ed23fc36d182</id>
<content type='text'>
It is sad that we can't wrap the cdrom method tighter at the moment, but
due to its ability to mount drives into arbitrary places via an external
suid binary we can't really do a lot better at the moment.

What we can do is set the options in the configuration space through as
it is standard in the other methods instead of doing it in main() which
is assumed to be more boilerplatey than actually doing something.

Gbp-Dch: Ignore
</content>
</entry>
<entry>
<title>non-local mirrorlists shouldn't redirect to local</title>
<updated>2018-01-03T18:42:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-11-18T11:38:21Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4df5483994d510290677abab5720445f71babe65'/>
<id>urn:sha1:4df5483994d510290677abab5720445f71babe65</id>
<content type='text'>
A mirror list we get from an non-local source like http shouldn't be
able to include e.g. file sources and even with other online sources we
need to be careful: They also shouldn't include prefixed methods like
'tor+http'. So apply magic based on how the method is called:
mirror+file will be allowed to redirect to any source while
tor+mirror+file allows all, but sends them to their tor+ variant.
</content>
</entry>
<entry>
<title>add tag-based control over mirror choices from the list</title>
<updated>2018-01-03T18:42:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-10-27T16:27:54Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a839efb126af066dc2e58400fb5e25911cb2a9f1'/>
<id>urn:sha1:a839efb126af066dc2e58400fb5e25911cb2a9f1</id>
<content type='text'>
The old implementation used to construct a query string including the
release(s) the mirrorlist should be for, but that is hard to deal with
as this rules out that partial mirrors are included in the list and it
turns out that nobody ended up implementing it on the server side.

Controlling this on the client side allows partial mirrors to be
included and as a bonus prevents that we tell the mirrorlist server
(this rather generic) user information.
</content>
</entry>
<entry>
<title>require methods to request AuxRequest capability at startup</title>
<updated>2018-01-03T18:42:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-10-27T22:01:27Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=04ab37fecaf286f724bef2e0969d2b67ab5ac1b1'/>
<id>urn:sha1:04ab37fecaf286f724bef2e0969d2b67ab5ac1b1</id>
<content type='text'>
Allowing a method to request work from other methods is a powerful
capability which could be misused or exploited, so to slightly limited
the surface let method opt-in into this capability on startup.
</content>
</entry>
<entry>
<title>reimplement and simplify mirror:// method</title>
<updated>2018-01-03T17:55:41Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-10-27T16:39:36Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=57fa854e4cdb060e87ca265abd5a83364f9fa681'/>
<id>urn:sha1:57fa854e4cdb060e87ca265abd5a83364f9fa681</id>
<content type='text'>
Embedding an entire acquire stack and HTTP logic in the mirror method
made it rather heavy weight and fragile. This reimplement goes the other
way by doing only the bare minimum in the method itself and instead
redirect the actual download of files to their proper methods.

The reimplementation drops the (in the real world) unused query-string
feature as it isn't really implementable in the new architecture.
</content>
</entry>
<entry>
<title>Correctly report transient errors again</title>
<updated>2018-01-03T15:33:36Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2018-01-03T15:28:59Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=5b197e9de5376e191018562309e2d42123c27a1d'/>
<id>urn:sha1:5b197e9de5376e191018562309e2d42123c27a1d</id>
<content type='text'>
Commit 47c0bdc310c8cd62374ca6e6bb456dd183bdfc07 ("report transient
errors as transient error") accidentally changed some connection
failures to become non-transient, because the result of the error
checks where being ignored and then fatal error was returned if an
error was pending - even if that error was trivial.

After the merge of pu/happy-eyeballs2a this becomes a lot clearer,
and easy to fix.

Gbp-Dch: ignore
Regression-Of: 47c0bdc310c8cd62374ca6e6bb456dd183bdfc07
</content>
</entry>
<entry>
<title>Add rapid "happy eyeballs" connection fallback (RFC 8305)</title>
<updated>2018-01-03T14:31:36Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2018-01-02T21:15:50Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3bbd328396745d0dd6c5585935040082a2c41e3e'/>
<id>urn:sha1:3bbd328396745d0dd6c5585935040082a2c41e3e</id>
<content type='text'>
Try establishing connections in alternating address families in
rapid intervals of 250 ms, adding more connections to the wait
list until one succeeds (RFC 8305, happy eyeballs 2).

It is important that WaitAndCheckErrors() waits until it has
a successful connection, a time out, or all connections failed
- otherwise the timing between tries might be wrong, and the
final long wait might exit early because one connection failed
without trying the others. Timing wise, this only works correctly
on Linux, as select() counts down there. But we rely on that in
some other places too, so this is not the time to fix that.

Timeouts are only reported in the final long wait - the short
inner waits are expected to time out more often, and multiple
times, we do not want to report them.

Closes: #668948
LP: #1308200
Gbp-Dch: paragraph
</content>
</entry>
<entry>
<title>connect: Extract Connection::CheckError() method</title>
<updated>2018-01-03T14:26:51Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2018-01-02T20:59:02Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=53bdec3ebea66153b320ee497871355eb526e0f2'/>
<id>urn:sha1:53bdec3ebea66153b320ee497871355eb526e0f2</id>
<content type='text'>
Extracting the error checking method allows us to reuse it
in different places, so we can move the waiting and checking
out of DoConnect() eventually.

Gbp-Dch: ignore
</content>
</entry>
<entry>
<title>connect: Store the IP used when picking a connection</title>
<updated>2018-01-03T14:26:51Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2018-01-02T20:56:40Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c9a5a6f2140758c0ed08764a07dd454a8f3ff986'/>
<id>urn:sha1:c9a5a6f2140758c0ed08764a07dd454a8f3ff986</id>
<content type='text'>
There's no real point in storing the IP address while resolving
it - failure messages include the IP address in any case. Do this
when picking the connection for actual use instead.
</content>
</entry>
<entry>
<title>connect: Extract a Connection struct</title>
<updated>2018-01-03T14:26:47Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2018-01-02T20:53:46Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2369d1249ce7119abb30b616182454a56f124f8d'/>
<id>urn:sha1:2369d1249ce7119abb30b616182454a56f124f8d</id>
<content type='text'>
This struct holds information about a connection attempt, like
the addrinfo, the resolved address, the fd for the connection,
and so on.

Gbp-Dch: ignore
</content>
</entry>
</feed>
