<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg, branch 1.2.5</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.2.5</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.2.5'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2016-03-06T14:00:33Z</updated>
<entry>
<title>get group again after potential remap in Source: parse</title>
<updated>2016-03-06T14:00:33Z</updated>
<author>
<name>David Kalnischkies</name>
<email>kalnischkies@gmail.com</email>
</author>
<published>2016-03-06T13:44:06Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=06a8e0dcb37796136be983b247c5d1bbfdf47a2e'/>
<id>urn:sha1:06a8e0dcb37796136be983b247c5d1bbfdf47a2e</id>
<content type='text'>
Mysteriously segfaults only on i386 for me, but at least one reporter
had the same behavior and it makes sense that this is the problem as the
parsing of Source: was fixed in 1.2.2 – before the not remapped group
was not used.

We don't use our usual Dynamic&lt;&gt; trick here as we don't have it in the
parser. Its a bit of a layer violation to do this parsing here, but its
how it is always was…

Until next time with this lovely kind of problem.

Closes: 812251
Thanks: Francesco Poli and Marc Haber for testdata.
</content>
</entry>
<entry>
<title>Prevent double remapping of iterators and string views</title>
<updated>2016-03-06T13:57:41Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-03-06T13:44:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9e7f83533665c03b52dff5809e7ebd93928ea445'/>
<id>urn:sha1:9e7f83533665c03b52dff5809e7ebd93928ea445</id>
<content type='text'>
If an iterator or a stringview has multiple dynamic objects
registered with it, it may be remapped twice. Prevent that
by noting which iterators/views we have seen and not remapping
one if we have already seen it.

We most likely do not have any instance of multiple dynamics
on a single object, but let's play safe - the overhead is not
high.
</content>
</entry>
<entry>
<title>do not move not-failed pdiff-patches into CWD on failure</title>
<updated>2016-03-06T11:57:38Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-03-06T11:03:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=dfcf7f356b790338f0a3e9df3c5d6f159814fe53'/>
<id>urn:sha1:dfcf7f356b790338f0a3e9df3c5d6f159814fe53</id>
<content type='text'>
If a single pdiff fails, we have to fail the entire patching endeavour
and fall back to getting the complete file instead. That is easy in
serverside merged pdiffs as we get them one by one. For clientside we
get them all at once through, which means that a failure in one has to
stop the entire pipeline, which works as expected (as proven by the
bugreporters as they don't even notice it happening). The problem is
just that the first failing pdiff will do the cleanup, so another pdiff
which happens to be successfully acquired after we processed the failure
doesn't find the file it is supposed to use as a basename anymore, so
the patch is renamed to what should be the unique extension and moved
into the current working directory. Processing is then stopped as the
patch realizes that it isn't the last one which completed downloading.

On the plus side this means this is neither us using a bad temporary
location nor a security problem. It "just" overrides unconditionally
files in your current working directory (if you happen to have them
named like a pdiff patch – a bit unlikely perhaps) and so drops files
there which are never used again.

I guess this was introduced in 4e3c5633b1e74b4f58b95f339cfbbf4cbf21ab3e
for real as I made the need for the existence of the base file rather
explicit, but the potential lingers in the code for far longer.

Closes: #816837
</content>
</entry>
<entry>
<title>Fix lzma write support to handle "try again" case</title>
<updated>2016-03-06T09:22:45Z</updated>
<author>
<name>Colin Watson</name>
<email>cjwatson@ubuntu.com</email>
</author>
<published>2016-03-05T01:17:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9a63c3f480bcbc3232067237671b854d43a97236'/>
<id>urn:sha1:9a63c3f480bcbc3232067237671b854d43a97236</id>
<content type='text'>
The liblzma-based write code needs the same tweaks that the read code
already has to cope with the situation where lzma_code returns zero the
first time through because avail_out is zero, but will do more work if
called again.

This ports the read tweaks to the write code as closely as possible
(including matching comments etc.).

Closes: #751688
</content>
</entry>
<entry>
<title>deal with partially downloaded changelogs</title>
<updated>2016-03-06T08:39:30Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-02-16T14:35:36Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=872bd447163066b331eb12c0fed0d71c0585f47b'/>
<id>urn:sha1:872bd447163066b331eb12c0fed0d71c0585f47b</id>
<content type='text'>
Changelogs are relatively small and we have no hashes for them, but we
had partial support for them before, so lets stick to it.

This also deletes the (partial) file before moving the downloaded file
into its place – rename(2) should be doing this by itself, but testing
on semaphoreci suggests that this isn't always the case (error is "Stale
file handle") and we don't need an atomic replace here, so be explicit.

Git-Dch: Ignore
</content>
</entry>
<entry>
<title>Add missing numeric includes in files using std::accumulate()</title>
<updated>2016-02-26T14:17:14Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-02-26T14:17:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2f4e4070a5247abac86b2ca4ae24a8400da3c42e'/>
<id>urn:sha1:2f4e4070a5247abac86b2ca4ae24a8400da3c42e</id>
<content type='text'>
Reported-By: Helmut Grohne on IRC
</content>
</entry>
<entry>
<title>Fix crash with empty architecture list</title>
<updated>2016-02-25T15:46:42Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-02-25T15:46:42Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9de2fd4d117e57824f4a0795efa7379995a804cb'/>
<id>urn:sha1:9de2fd4d117e57824f4a0795efa7379995a804cb</id>
<content type='text'>
If the architecture list is empty somehow, fail normally.

LP: #1549819
</content>
</entry>
<entry>
<title>pass versioned provides to external solvers in EDSP</title>
<updated>2016-02-16T10:42:29Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-02-16T10:34:21Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2c53226b72e7e58cdd9b42af46cb3d05da89809e'/>
<id>urn:sha1:2c53226b72e7e58cdd9b42af46cb3d05da89809e</id>
<content type='text'>
The EDSP output generated by apt didn't include the versioned provides
information so that every provides looked like an unversioned one in the
eyes of an external resolver.
</content>
</entry>
<entry>
<title>always download changelogs into /tmp first</title>
<updated>2016-02-11T22:13:47Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-02-11T21:54:49Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6fd4b4c0b693b52cb8b593b76e5b60f77e500454'/>
<id>urn:sha1:6fd4b4c0b693b52cb8b593b76e5b60f77e500454</id>
<content type='text'>
pkgAcqChangelog has the default behaviour of downloading a changelog to
a temporary directory (inside /tmp, not /tmp directly), which is cleaned
up on shutdown, but this can be overridden to store the changelog more
permanently – but that caries a permission problem.

For changelog we can 'easily' solve this by always downloading to a
temporary directory and only move it out of there on done.
</content>
</entry>
<entry>
<title>use local changelog from /usr/share/doc if possible</title>
<updated>2016-02-11T20:07:56Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-02-11T20:07:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=b5aba9096e371a5f8612aff05384aca54ccc5acd'/>
<id>urn:sha1:b5aba9096e371a5f8612aff05384aca54ccc5acd</id>
<content type='text'>
If pkgAcqChangelog is told to acquire the changelog for a version it
will check first if this version is installed on the disk and if so will
use the local changelog in /usr/share/doc (possibily/likely gz
compressed) instead of downloading the file from the web.

An option is provided to disable this, which is enabled by default for
the Ubuntu vendor as they truncate the local changelogs – and for apts
--print-uris action.
</content>
</entry>
</feed>
