<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/depcache.cc, branch 2.1.16</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.1.16</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.1.16'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2021-01-04T09:46:48Z</updated>
<entry>
<title>Determine autoremovable kernels at run-time</title>
<updated>2021-01-04T09:46:48Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-12-17T12:24:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=04085f46dea9a95dd86123ac00187a63cc4ba2c0'/>
<id>urn:sha1:04085f46dea9a95dd86123ac00187a63cc4ba2c0</id>
<content type='text'>
Our kernel autoremoval helper script protects the currently booted
kernel, but it only runs whenever we install or remove a kernel,
causing it to protect the kernel that was booted at that point in time,
which is not necessarily the same kernel as the one that is running
right now.

Reimplement the logic in C++ such that we can calculate it at run-time:
Provide a function to produce a regular expression that matches all
kernels that need protecting, and by changing the default root set
function in the DepCache to make use of that expression.

Note that the code groups the kernels by versions as before, and then
marks all kernel packages with the same version.

This optimized version inserts a virtual package $kernel into the cache
when building it to avoid having to iterate over all packages in the
cache to find the installed ones, significantly improving performance at
a minor cost when building the cache.

LP: #1615381
</content>
</entry>
<entry>
<title>depcache: Cache our InRootSetFunc</title>
<updated>2021-01-04T09:43:31Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-12-17T12:20:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=290a4cf9455f45895718ed698147061fcd0a2dcb'/>
<id>urn:sha1:290a4cf9455f45895718ed698147061fcd0a2dcb</id>
<content type='text'>
This avoids the cost of setting up the function every time
we mark and sweep.
</content>
</entry>
<entry>
<title>Merge branch 'master' into 'master'</title>
<updated>2020-08-04T10:16:36Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2020-08-04T10:16:36Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=63c0657ea54c9268bc1855d5eac92bc636532bd6'/>
<id>urn:sha1:63c0657ea54c9268bc1855d5eac92bc636532bd6</id>
<content type='text'>
Support marking all newly installed packages as automatically installed

See merge request apt-team/apt!110</content>
</entry>
<entry>
<title>Filter out impossible solutions for protected propagation</title>
<updated>2020-07-02T16:57:11Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-06-19T11:58:35Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=cfd0172fb0eeb15b2e2427c0e11b2ec65f501839'/>
<id>urn:sha1:cfd0172fb0eeb15b2e2427c0e11b2ec65f501839</id>
<content type='text'>
If the package providing the given solution is tagged already for
removal (or at least for "not installing") we can ignore this solution
as a possibility as it is not one, which means we can avoid exploring
the option and potentially forward the protected flag further if that
helps in reducing the possibilities to a single one.
</content>
</entry>
<entry>
<title>Delay removals due to Conflicts until Depends are resolved</title>
<updated>2020-07-02T16:57:11Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-06-19T11:14:33Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3e39efa31da463ca05016513835d9a5388f80f90'/>
<id>urn:sha1:3e39efa31da463ca05016513835d9a5388f80f90</id>
<content type='text'>
Marking a package for removal is fine if we know that we have to remove
that package, but if we are in an alternative branch we might not go
this route in the end and hence have a package pointlessly marked for
removal which isn't questioned later on.

We check if we are allowed to remove that package to avoid working on
the positive dependencies if not, but we mark them for removal only
after all the other dependencies are successfully resolved.

In an ideal world we would let the problemResolver do its job on them,
but the resolver might decide against doing the removal exploring
another option like the next alternative, which might be a good idea,
but is not the behaviour we had before, so that is the best we can do
for now without changing the resolver drastically.
</content>
</entry>
<entry>
<title>Support marking all newly installed packages as automatically installed</title>
<updated>2020-06-08T10:18:33Z</updated>
<author>
<name>Nicolas Schier</name>
<email>nicolas@fjasle.eu</email>
</author>
<published>2020-02-27T04:04:54Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c19a3276fe7ecfc132e95b0277e9e68ff364dd92'/>
<id>urn:sha1:c19a3276fe7ecfc132e95b0277e9e68ff364dd92</id>
<content type='text'>
Add option '--mark-auto' to 'apt install' that marks all newly installed
packages as automatically installed.

Signed-off-by: Nicolas Schier &lt;nicolas@fjasle.eu&gt;
</content>
</entry>
<entry>
<title>Deal with duplicates in the solution space of a dep</title>
<updated>2020-06-03T11:41:14Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-06-03T11:03:37Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=96359a576f59eb8bc461bdd4c5eadeb17fe8f0ca'/>
<id>urn:sha1:96359a576f59eb8bc461bdd4c5eadeb17fe8f0ca</id>
<content type='text'>
While we process the possible solutions we might modify other solutions
like discarding their candidates and such, so that then we reach them
they might no longer be proper candidates. We also try to drop
duplicates early on to avoid the simple cases of these which
test-explore-or-groups-in-markinstall triggers via its explicit
duplication but could also come via multiple provides.

It only worked previously as were ignoring current versions which
usually is okay expect if they are marked for removal and we want to
reinstate them so the ProblemResolver can decide which one later on.
</content>
</entry>
<entry>
<title>Don't update candidate provides map if the same as current</title>
<updated>2020-05-25T10:05:00Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-05-23T15:15:32Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c77566fd8f21a1a44efb4092c90996d1cc8eaf24'/>
<id>urn:sha1:c77566fd8f21a1a44efb4092c90996d1cc8eaf24</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Don't set variables to conditionally override them 2 lines later</title>
<updated>2020-05-25T10:05:00Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-05-23T14:55:59Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=0e5a9bf95d5b9b3c775ed3ce6142d35815a7c7ac'/>
<id>urn:sha1:0e5a9bf95d5b9b3c775ed3ce6142d35815a7c7ac</id>
<content type='text'>
Gbp-Dch: Ignore
</content>
</entry>
<entry>
<title>Allow pkgDepCache to be asked to check internal consistency</title>
<updated>2020-05-24T19:02:35Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2020-05-23T14:22:44Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2ba86f95bfad4ec00a3b99b311d05c158162b25c'/>
<id>urn:sha1:2ba86f95bfad4ec00a3b99b311d05c158162b25c</id>
<content type='text'>
For speed reasons pkgDepCache initializes its state once and then has a
battery of update calls you have to invoke in the right order to update
the various states – all in the name of speed. In debug and/or
simulation mode we can sacrifice this speed for a bit of extra checking
though to verify that we haven't made some critical mistake like #961266.
</content>
</entry>
</feed>
