<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/methods, branch 1.3_rc4</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.3_rc4</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.3_rc4'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2016-09-01T17:24:26Z</updated>
<entry>
<title>support long keyid and fingerprint in gpgv's GOODSIG</title>
<updated>2016-09-01T17:24:26Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-09-01T16:55:20Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6dc85f53d92b9763a1509a6472227c54bc70b01d'/>
<id>urn:sha1:6dc85f53d92b9763a1509a6472227c54bc70b01d</id>
<content type='text'>
In gpgv1 GOODSIG (and the other messages of status-fd) are documented as
sending the long keyid. In gpgv2 it is documented to be either long
keyid or the fingerprint. At the moment it is still the long keyid, but
the documentation hints at the possibility of changing this.

We care about this for Signed-By support as we detect this way if the
right fingerprint has signed this file (or not). The check itself is
done via VALIDSIG which always is a fingerprint, but there must also be
a GOODSIG (as expired sigs are valid, too) found to be accepted which
wouldn't be found in the fingerprint-case and the signature hence
refused.
</content>
</entry>
<entry>
<title>try not to call memcpy with length 0 in hash calculations</title>
<updated>2016-09-01T14:13:14Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-08-31T08:11:07Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=644478e8db56f305601c3628a74e53de048b28c8'/>
<id>urn:sha1:644478e8db56f305601c3628a74e53de048b28c8</id>
<content type='text'>
memcpy is marked as nonnull for its input, but ignores the input anyhow
if the declared length is zero. Our SHA2 implementations do this as
well, it was "just" MD5 and SHA1 missing, so we add the length check
here as well as along the callstack as it is really pointless to do all
these method calls for "nothing".

Reported-By: gcc -fsanitize=undefined
</content>
</entry>
<entry>
<title>Merge branch 'portability/freebsd'</title>
<updated>2016-08-26T22:31:03Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-08-26T22:31:03Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6a68315e938eb2611806658828ecea86805822e7'/>
<id>urn:sha1:6a68315e938eb2611806658828ecea86805822e7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>methods/connect.cc: Only use AI_IDN if defined</title>
<updated>2016-08-26T13:49:14Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-08-23T12:57:11Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8265d6c8fdc2dd835d9cf2a47af13461fa421389'/>
<id>urn:sha1:8265d6c8fdc2dd835d9cf2a47af13461fa421389</id>
<content type='text'>
Gbp-Dch: ignore
</content>
</entry>
<entry>
<title>CMake: Do not use -lresolv if res_init exists in libc</title>
<updated>2016-08-26T13:49:14Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-08-23T11:42:54Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ad5282bb0c97fd0254b20fb71a59d0f755c3ed65'/>
<id>urn:sha1:ad5282bb0c97fd0254b20fb71a59d0f755c3ed65</id>
<content type='text'>
Gbp-Dch: ignore
</content>
</entry>
<entry>
<title>show apt-key warnings in apt update</title>
<updated>2016-08-25T13:22:28Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-08-25T13:22:28Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=29c590951f812d9e9c4f17706e34f2c3315fb1f6'/>
<id>urn:sha1:29c590951f812d9e9c4f17706e34f2c3315fb1f6</id>
<content type='text'>
In 105503b4b470c124bc0c271bd8a50e25ecbe9133 we got a warning implemented
for unreadable files which greatly improves the behavior of apt update
already as everything will work as long as we don't need the keys
included in these files. The behavior if they are needed is still
strange through as update will fail claiming missing keys and a manual
test (which the user will likely perform as root) will be successful.

Passing the new warning generated by apt-key through to apt is a bit
strange from an interface point of view, but basically duplicating the
warning code in multiple places doesn't feel right either. That means we
have no translation for the message through as apt-key has no i18n yet.

It also means that if the user has a bunch of sources each of them will
generate a warning for each unreadable file which could result in quite
a few duplicated warnings, but "too many" is better than none.

Closes: 834973
</content>
</entry>
<entry>
<title>methods: read config in most to least specific order</title>
<updated>2016-08-17T19:53:05Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-08-17T19:53:05Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d1bdb73a96d01896ec8e213a0f14abc38d19a929'/>
<id>urn:sha1:d1bdb73a96d01896ec8e213a0f14abc38d19a929</id>
<content type='text'>
The implementation of the generic config fallback did the fallback in
the wrong order so that the least specific option wasn't the last value
picked but in fact the first one… doh!

So in the bugreports case http -&gt; https -&gt; http::&lt;hostname&gt; -&gt;
https::&lt;hostname&gt; while it should have been the reverse as before.

Regression-In: 30060442025824c491f58887ca7369f3c572fa57
Closes: 834642
</content>
</entry>
<entry>
<title>don't try pipelining if server closes connections</title>
<updated>2016-08-16T17:20:28Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-08-12T09:05:58Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9714d522056e5256f5a2de587d88eba7cb3291c2'/>
<id>urn:sha1:9714d522056e5256f5a2de587d88eba7cb3291c2</id>
<content type='text'>
If a server closes a connection after sending us a file that tends to
mean that its a type of server who always closes the connection – it is
therefore relatively pointless to try pipelining with it even if it
isn't a problem by itself: apt is just restarting the pipeline each
time after it got served one file and the connection is closed.

The problem starts if one or more proxies are between the server and apt
and they disagree about how the connection should be as in the
bugreporters case where the responses apt gets contain both Keep-Alive
and Proxy-Connection headers (which apt both ignores) indicating a
proxy is trying to keep a connection open while the response also
contains "Connection: close" indicating the opposite which apt
understands and respects as it is required to do.

We avoid stepping into this abyss by not performing pipelining anymore
if we got a respond with the indication to close connection if the
response was otherwise a success – error messages are sent by some
servers via this method as their pages tend to be created dynamically
and hence their size isn't known a priori to them.

Closes: #832113
</content>
</entry>
<entry>
<title>don't sent Range requests if we know its not accepted</title>
<updated>2016-08-16T16:49:37Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-08-11T16:24:35Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d94b1d80d8326334d17f6a43061368e783b8e0aa'/>
<id>urn:sha1:d94b1d80d8326334d17f6a43061368e783b8e0aa</id>
<content type='text'>
If the server told us in a previous request that it isn't supporting
Ranges with bytes via an Accept-Ranges header missing bytes, we don't
try to formulate requests using Ranges.
</content>
</entry>
<entry>
<title>reorganize server-states resetting in http/https</title>
<updated>2016-08-16T16:49:37Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-08-11T14:59:13Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ebdb6f1810a20ac240b5b2192dc2e6532ff149d2'/>
<id>urn:sha1:ebdb6f1810a20ac240b5b2192dc2e6532ff149d2</id>
<content type='text'>
We keep various information bits about the server around, some only
effecting the currently handled file (like sizes) while others
should be persistent (like pipeline detections). http used to reset all
file-related manually, which is a bit silly if we already have a Reset()
method – which does reset all through –, so extending it with a
parameter for reuse and calling it from https too (as this was
previously resetting by just creating a new state struct – it uses no
value of the persistent state-keeping yet as it supports no pipelining).

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