<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/acquire-method.h, branch 3.1.5</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=3.1.5</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=3.1.5'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2025-02-15T08:42:54Z</updated>
<entry>
<title>Remove some more unused functions</title>
<updated>2025-02-15T08:42:54Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-15T08:42:54Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8db4be21f3effe3cbeee96bace00d25ffaebb317'/>
<id>urn:sha1:8db4be21f3effe3cbeee96bace00d25ffaebb317</id>
<content type='text'>
Final ABI cleanup before unstable?!
</content>
</entry>
<entry>
<title>Drop APT_DEPRECATED usage</title>
<updated>2025-01-05T22:16:08Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-12-26T21:32:44Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=785a7a50b53bd0794e58cca31730818714992c00'/>
<id>urn:sha1:785a7a50b53bd0794e58cca31730818714992c00</id>
<content type='text'>
C++14 includes the standard attribute, so we can use that instead.
Note that we drop the deprecation of {Pkg,Dep}Iterator::operator&lt;&lt; as
this is ignored (a friends declaration must be a definition to have
attributes) very noisily by GCC &gt;= 12 and the methods can be somewhat
useful in debugging if you are to lazy to get APT::Pretty{Pkg,Dep}.
</content>
</entry>
<entry>
<title>http: use Retry-After HTTP header to optimize retries</title>
<updated>2024-11-18T12:44:49Z</updated>
<author>
<name>Felix Moessbauer</name>
<email>felix.moessbauer@siemens.com</email>
</author>
<published>2024-11-08T14:04:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7b9dea5a7c43fd91bcd23d1585d39a726d098285'/>
<id>urn:sha1:7b9dea5a7c43fd91bcd23d1585d39a726d098285</id>
<content type='text'>
Some mirrors like snapshot.debian.org apply strict http rate limits.
While apt already has an exponential backoff mechanism implemented, this
is not sufficient due to the following reasons:

1. all retries happen roughly at the same time
2. the retry-after information from the server is not used

We fix this by improving the algorithm: First, if present, the timestamp
or duration of the Retry-After header is added to the exponential
backoff, optimizing for success-on-second-try. Second, a random delay is
added (delay += [0, delay]) to distribute the retries to not immediately
run into the limit again. To avoid super-long delays, this is capped by
the configured maximum delay. This logic only becomes active if the
option Acquire::Retries::HandleRetryAfter is enabled.

Signed-off-by: Felix Moessbauer &lt;felix.moessbauer@siemens.com&gt;
</content>
</entry>
<entry>
<title>Modernize standard library includes</title>
<updated>2024-02-20T12:49:04Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-02-20T12:43:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=40a75722c43ae24cb9a99d6730a3b25b65819c49'/>
<id>urn:sha1:40a75722c43ae24cb9a99d6730a3b25b65819c49</id>
<content type='text'>
This was automated with sed and git-clang-format, and then I had to
fix up the top of policy.cc by hand as git-clang-format accidentally
indented it by two spaces.
</content>
</entry>
<entry>
<title>Replace PrintStatus with SendMessage usage</title>
<updated>2021-02-04T10:00:00Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-06-28T18:52:09Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=96dc40b19623621a9cc2c5541fb3adbbceb553b1'/>
<id>urn:sha1:96dc40b19623621a9cc2c5541fb3adbbceb553b1</id>
<content type='text'>
varg API is a nightmare as the symbols seems different on ever other
arch, but more importantly SendMessage does a few checks on the content
of the message and it is all outputted via C++ iostreams and not mixed
in FILE* which is handy for overriding the streams.
</content>
</entry>
<entry>
<title>Keep URIs encoded in the acquire system</title>
<updated>2020-12-18T18:31:19Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-07-09T14:38:49Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e6c55283d235aa9404395d30f2db891f36995c49'/>
<id>urn:sha1:e6c55283d235aa9404395d30f2db891f36995c49</id>
<content type='text'>
We do not deal a lot with URIs which need encoding, but then we do it is
a pain that we store it decoded in the acquire system as it means we
have to decode and reencode URIs eventually which is potentially giving
us slightly different URIs.

We see that in our own testing framework while setting up redirects as
the config options are effectively double-encoded and decoded to pass
them around successfully as otherwise %2f and / in an URI are treated
the same.

This commit adds the infrastructure for methods to opt into getting URIs
send in encoded form (and returning them to us in encoded form, too) so
that we eventually do not have to touch the URIs which is how it should
be. This means though that we have to deal with methods who do not
support this yet (aka: all at the moment) for which we decode and encode
while communicating with them.
</content>
</entry>
<entry>
<title>apt-pkg: default visibility to hidden</title>
<updated>2020-02-26T19:34:54Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2019-08-13T17:15:19Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=db678df196ccd8f9f6fb336706cf5701d1e53aa6'/>
<id>urn:sha1:db678df196ccd8f9f6fb336706cf5701d1e53aa6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Run unifdef -DAPT_{8,9,10,15}_CLEANER_HEADERS</title>
<updated>2019-06-12T13:02:55Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2019-05-11T15:17:20Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=daa1352ed3d2bb4bc6aa0f0e7f22be3f0908942d'/>
<id>urn:sha1:daa1352ed3d2bb4bc6aa0f0e7f22be3f0908942d</id>
<content type='text'>
</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>refactor message generation for methods</title>
<updated>2018-01-03T17:55:41Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-08-09T21:26:19Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=02567e3084d2faec92e8bf248e89fda6452e634b'/>
<id>urn:sha1:02567e3084d2faec92e8bf248e89fda6452e634b</id>
<content type='text'>
The format isn't too hard to get right, but it gets funny with multiline
fields (which we don't really have yet) and its just easier to deal with
it once and for all which can be reused for more messages later.
</content>
</entry>
</feed>
