<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/algorithms.cc, branch 2.9.22</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.9.22</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.9.22'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2024-11-12T19:36:10Z</updated>
<entry>
<title>apt-pkg/algorithms.cc, apt-pkg/cachefilter.h: drop unused #include &lt;apt-pkg/string_view.h&gt;</title>
<updated>2024-11-12T19:36:10Z</updated>
<author>
<name>наб</name>
<email>nabijaczleweli@nabijaczleweli.xyz</email>
</author>
<published>2024-11-12T16:59:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e1cb4e100320ceb5c81583943f57bcd007a95a7d'/>
<id>urn:sha1:e1cb4e100320ceb5c81583943f57bcd007a95a7d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Return an error if ResolveByKeep() is unsuccessful</title>
<updated>2024-11-11T11:30:01Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-09-05T12:58:50Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2f5aab4afaa61ec9b9c690dea4a0b7d650bb2374'/>
<id>urn:sha1:2f5aab4afaa61ec9b9c690dea4a0b7d650bb2374</id>
<content type='text'>
In case of held packages or packages that otherwise can't be kept
back, we should return an error and not require the client to check
the broken_count after calling us.

LP: #2078720
</content>
</entry>
<entry>
<title>Fix keeping back removals of obsolete packages</title>
<updated>2024-11-11T11:30:01Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-09-05T12:56:01Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=49d3d6b2c3dbc0d30e46131dd288f4e106ea2fe6'/>
<id>urn:sha1:49d3d6b2c3dbc0d30e46131dd288f4e106ea2fe6</id>
<content type='text'>
ResolveByKeepInternal() inadvertently considered packages that were
marked for removals as not being possible to keep back, but that's
not true, all they need is to have a currently installed version.

The test case is a bit awkward to construct because our upgrade code
doesn't get into a place where this happens that we know off. Or maybe
it does with phased upgrades, but here we simplify this by using a
helper binary that dumps state, marks for removal, and then calls
ResolveByKeep and checks the removal is undone.

LP: #2078720
</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>Merge branch 'keep-kernel-size' into 'main'</title>
<updated>2024-02-20T08:30:05Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2024-02-20T08:30:05Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=dfa7965f2f82ba5ada3ed4feea4630a7d4cc5895'/>
<id>urn:sha1:dfa7965f2f82ba5ada3ed4feea4630a7d4cc5895</id>
<content type='text'>
Configure the amount of kernels to keep

See merge request apt-team/apt!324</content>
</entry>
<entry>
<title>Add public phased update API</title>
<updated>2024-02-13T13:27:27Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-02-12T13:48:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a8352c2859a6f84b36fa5cd0af89231cb656b1ce'/>
<id>urn:sha1:a8352c2859a6f84b36fa5cd0af89231cb656b1ce</id>
<content type='text'>
This moves the functions of the PhasedUpgrader class into
various other classes so they can be publicly exposed.

This introduces three new functions:

pkgDepCache::PhasingApplied() tells you whether phasing should
be applied to the package.

pkgProblemResolver::KeepPhasedUpdates() keeps back updates that
have phasing applied.

pkgCache::VerIterator::IsSecurityUpdate() determines whether this
version contains security fixes.
</content>
</entry>
<entry>
<title>Configure the amount of kernels to keep</title>
<updated>2024-01-24T17:23:33Z</updated>
<author>
<name>Wesley Schwengle</name>
<email>wesleys@opperschaap.net</email>
</author>
<published>2024-01-23T19:41:33Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a6e30cc02eb24d5b2bbf2cb1b59c48c62d09658f'/>
<id>urn:sha1:a6e30cc02eb24d5b2bbf2cb1b59c48c62d09658f</id>
<content type='text'>
This commit introduces the following configuration for keeping a
configurable amount of kernels: APT::NeverAutoRemove::KernelCount

The logic dictates that the running kernel and the latest kernel are not
autoremoved. In case the running kernel is the latest kernel, the
previous kernel is kept. Any count lower than two is therefore
disregarded. This is in line with the previous behavior.

The default is therefore similar to:
APT::NeverAutoRemove::KernelCount 2;

This will be ignored and we will still keep two:
APT::NeverAutoRemove::KernelCount 1;

This will keep 3 kernels (including the runnig, and most recent)
APT::NeverAutoRemove::KernelCount 3;

Signed-off-by: Wesley Schwengle &lt;wesleys@opperschaap.net&gt;
</content>
</entry>
<entry>
<title>dist-upgrade: Revert phased updates using keeps only</title>
<updated>2023-07-05T08:57:26Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2023-07-03T09:13:00Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=89dd48bdea93849246fc33b447d6d7ad52bb1c4b'/>
<id>urn:sha1:89dd48bdea93849246fc33b447d6d7ad52bb1c4b</id>
<content type='text'>
In the bug, mutter was kept back due to phasing and the new gnome-shell
depended on that, and was therefore kept back as well, however,
gnome-shell-common was not broken, and apt decided to continue upgrading
it by removing gnome-shell and the ubuntu desktop meta packages.

This is potentially a regression of LP#1990586 where we added keep
back calls to the start of the dist-upgrade to ensure that we do not
mark stuff for upgrade in the first place that depends on phasing
updates, however it was generally allowed by the resolver to also
do those removals.

To fix this, we need to resolve the update normally and then use
ResolveByKeepInternal to keep back any changes broken by held back
packages.

However, doing so breaks test-bug-591882-conkeror because ResolveByKeep
keeps back packages for broken Recommends as well, which is not
something we generally want to do in a dist-upgrade after we already
decided to upgrade it.

To circumvent that issue, extend the pkgProblemResolver to allow
a package to be policy broken, and mark all packages that already
were already going to be policy broken to be allowed to be that,
such that we don't try to undo their installs.

LP: #2025462
</content>
</entry>
<entry>
<title>Keep "or group" when installing package to satisfy it</title>
<updated>2023-05-02T11:59:45Z</updated>
<author>
<name>Jacob Kauffmann</name>
<email>jacob@system76.com</email>
</author>
<published>2023-05-02T11:59:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=5f9552801139e6ea8d84db20692561b79cda6d00'/>
<id>urn:sha1:5f9552801139e6ea8d84db20692561b79cda6d00</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Check state of dependency, not dependee in dependency keep back</title>
<updated>2022-09-28T14:32:44Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2022-09-26T10:33:55Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f93a5aa2daa92255c75865b6f92dddb4b072ff33'/>
<id>urn:sha1:f93a5aa2daa92255c75865b6f92dddb4b072ff33</id>
<content type='text'>
When iterating over I's dependencies (which are called Pkg), we
accidentally checked if I was Protected() instead of Pkg when deciding
whether Pkg can be kept back.

LP: #1990684
</content>
</entry>
</feed>
