<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt, branch 2.1.4</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.1.4</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.1.4'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2020-05-19T09:29:11Z</updated>
<entry>
<title>Release 2.1.4</title>
<updated>2020-05-19T09:29:11Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-05-19T09:29:11Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9d0a37e9cf644f99666b60e5a1ca5131fd0c6519'/>
<id>urn:sha1:9d0a37e9cf644f99666b60e5a1ca5131fd0c6519</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Check satisfiability for versioned provides, not providing version</title>
<updated>2020-05-19T09:22:19Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-05-19T09:20:28Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=dcd920e99df964d320e18ac133d575d4151deb85'/>
<id>urn:sha1:dcd920e99df964d320e18ac133d575d4151deb85</id>
<content type='text'>
References: dcdfb4723a9969b443d1c823d735e192c731df69
</content>
</entry>
<entry>
<title>Release 2.1.3</title>
<updated>2020-05-18T20:24:25Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-05-18T20:24:25Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1af12dd37acbb2c3987b71d85113f68d1f2bea1e'/>
<id>urn:sha1:1af12dd37acbb2c3987b71d85113f68d1f2bea1e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>private-search: Only use V.TranslatedDescription() if good</title>
<updated>2020-05-18T20:22:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-05-13T22:06:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e61886cacbc5411ea027e3a3d1d5c31793ed2b71'/>
<id>urn:sha1:e61886cacbc5411ea027e3a3d1d5c31793ed2b71</id>
<content type='text'>
When we could not find a translated description, we were
pushing V.TranslatedDescription() to the vector, but that
one might not have been good either.

Add the check so we don't crash later when trying to access
it.

LP: #1877987
</content>
</entry>
<entry>
<title>Recognize propagated protected in pkgProblemResolver</title>
<updated>2020-05-18T13:55:36Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-05-17T23:03:52Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1f641cf70e9cd52c093b4b62dc392f29cf34f03e'/>
<id>urn:sha1:1f641cf70e9cd52c093b4b62dc392f29cf34f03e</id>
<content type='text'>
Turns out that pkgDepCache and pkgProblemResolver maintain two (semi)
independent sets of protected flags – except that a package if marked
protected in the pkgProblemResolver is automatically also marked in the
pkgDepCache as protected. This way the pkgProblemResolver will have as
protected only the direct user requests while pkgDepCache will
(hopefully) propagate the flag to unavoidable dependencies of these
requests nowadays. The pkgProblemResolver was only checking his own
protected flag though and based on that calls our Mark* methods usually
without checking return, leading to it believing it could e.g. remove
packages it actually can't remove as pkgDepCache will not allow it as it
is marked as protected there. Teaching it to check for the flag in the
pkgDepCache instead avoids it believing in the wrong things eventually
giving up.

The scoring is keeping the behaviour of adding the large score boost
only for the direct user requests though as there is no telling which
other sideeffects this might have if too many packages get too many
points from the get-go.

Second part of fixing #960705, now with pkgProblemResolver output which
looks more like the whole class of problem is resolved rather than a
teeny tiny edgecase it was before.
</content>
</entry>
<entry>
<title>Propagate protected to already satisfied dependencies</title>
<updated>2020-05-18T13:55:36Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-05-16T12:46:05Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=dbed89f296106f82e9fe8f866fa87a4c14b44584'/>
<id>urn:sha1:dbed89f296106f82e9fe8f866fa87a4c14b44584</id>
<content type='text'>
The previous commit deals with negative, now we add the positive side of
things as well which makes this a recursive endevour. As we can push the
protected flag forward only if a single solution for a dependency exists
it is easy for trees to not get it, so if resolving becomes difficult it
won't help at all.
</content>
</entry>
<entry>
<title>Propagate protected to already satisfied conflicts</title>
<updated>2020-05-18T13:55:36Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-05-16T09:17:21Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=57df27397b1a10e50d5876482a30b9dedb2ad219'/>
<id>urn:sha1:57df27397b1a10e50d5876482a30b9dedb2ad219</id>
<content type='text'>
If we propagate protected e.g. due to a user request we should also act
upon (at the moment) satisfied negative dependencies so that the
resolver knows that installing this package later is not an option.

That the problem resolver is trying bad solutions is a bug by
itself which existed before and after and should be worked on.

Closes: #960705
</content>
</entry>
<entry>
<title>Deal with protected solution providers first</title>
<updated>2020-05-18T13:55:36Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-05-17T17:47:29Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=55d4d1b51c0d2b78b76f2b233714ed3914b695cf'/>
<id>urn:sha1:55d4d1b51c0d2b78b76f2b233714ed3914b695cf</id>
<content type='text'>
For positive dependencies this isn't giving much as the dependency
should already be satisfied by such a provider if its protectiveness
would help, but it doesn't hurt to check them first and for negative
dependencies it means that we check those first which are the most
likely to fail to be removed – which is a good idea.
</content>
</entry>
<entry>
<title>Support negative dependencies in VCI::FromDependency</title>
<updated>2020-05-18T13:55:36Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-05-16T08:52:11Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=dcdfb4723a9969b443d1c823d735e192c731df69'/>
<id>urn:sha1:dcdfb4723a9969b443d1c823d735e192c731df69</id>
<content type='text'>
The important change is adding IsIgnoreable() as it will deal with
self-conflicts and such, but while we are at it lets sprinkle in some
refactoring.
</content>
</entry>
<entry>
<title>Move the MarkInstall helpers into static functions</title>
<updated>2020-05-18T13:55:36Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-05-15T22:46:11Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a08c55c0a5ba5760a24b9fa14ffd12332fdf04f8'/>
<id>urn:sha1:a08c55c0a5ba5760a24b9fa14ffd12332fdf04f8</id>
<content type='text'>
Reducing the scope of these helpers might allow us to move them
elsewhere and share them or it is a rather pointless exercise,
we will see where it leads us to later on.

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