<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg, branch 2.5.1</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.5.1</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.5.1'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2022-06-29T13:30:03Z</updated>
<entry>
<title>Merge branch 'pu/phasing-better' into 'main'</title>
<updated>2022-06-29T13:30:03Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2022-06-29T13:30:03Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e4230878687c6d9bd3b13552bb2c1053b9d7d7d8'/>
<id>urn:sha1:e4230878687c6d9bd3b13552bb2c1053b9d7d7d8</id>
<content type='text'>
Rewrite phased updates using a keep-back approach

See merge request apt-team/apt!245</content>
</entry>
<entry>
<title>policy: Do not override negative pins with 1 due to phasing</title>
<updated>2022-06-28T12:54:42Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2022-06-28T12:53:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=20739359fa936c0851a4c0f37667526d98c22761'/>
<id>urn:sha1:20739359fa936c0851a4c0f37667526d98c22761</id>
<content type='text'>
If a package is already pinned to a negative value, we should not
override this with a positive 1. This causes packages to be installable
that were pinned to -1, which is not intended.

For this, implement phasing as a ceiling of 1 for the pin instead
of a fixed 1 value. An alternative would have been to fix it to
NEVER_PIN, but that would mean entirely NEW packages would not be
installable while phasing which is not the intention either.

LP: #1978125
</content>
</entry>
<entry>
<title>(Temporarily) Rewrite phased updates using a keep-back approach</title>
<updated>2022-06-28T12:25:18Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2022-06-24T14:09:24Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=db131677bee45c86031d37d7b451e6ece692efb2'/>
<id>urn:sha1:db131677bee45c86031d37d7b451e6ece692efb2</id>
<content type='text'>
This is a lot closer to the original implementation in update-manager,
but still has a couple of differences that might cause bugs:

- When checking whether a version is a security update, we only
  check versions in between and not any later version. This happens
  mostly because we do not know the suite, so we just check if there
  is any version between the installed version and our target that
  is a security update

- We only keep already installed packages, as we run before the
  resolver. update-manager first runs the resolver, and then marks
  for keep all packages that were upgraded or newly installed that
  are phasing (afaict).

This approach has a significant caveat that if you have version 1
installed from a release pocket, version 2 is in security, and version
3 is phasing in updates, that it installs version 3 rather than 2
from security as the policy based implementation does.

It also means that apt install does not respect phasing and would
always install version 3 in such a scenario.

LP: #1979244
</content>
</entry>
<entry>
<title>Fix integer underflow in flExtension</title>
<updated>2022-05-23T08:09:31Z</updated>
<author>
<name>Ronan Desplanques</name>
<email>ronan.desplanques@gmail.com</email>
</author>
<published>2022-05-23T07:57:10Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=cacdb54953dbc81eecf4c3a55c132836e7849098'/>
<id>urn:sha1:cacdb54953dbc81eecf4c3a55c132836e7849098</id>
<content type='text'>
Before this patch, the expression `Res - File.length()` that was
used as the length underflowed. It was very unlikely to cause any
problem given the saturating behavior of the std::string
constructor that's used.

Replacing `Res - File.length()` with `File.length() - Res` would
have worked, but omitting the last argument altogether invokes an
std::string constructor which does the right thing.
</content>
</entry>
<entry>
<title>Use temporary file instead of depending on /dev/stdin for triehash</title>
<updated>2022-05-11T16:02:07Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2022-05-11T16:02:07Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=701a501fb1c84296d2003c0092e4308742079591'/>
<id>urn:sha1:701a501fb1c84296d2003c0092e4308742079591</id>
<content type='text'>
/dev might not be populated for example in unshare chroots, so just
using a temporary file it is until triehash supports non-file input.

Regression-Of: f6438ea9e726a1c13ce8d90ac78cc272346ab0f8
Gbp-Dch: Ignore
</content>
</entry>
<entry>
<title>Include our config.h in all C++ files to avoid ODR violations</title>
<updated>2022-05-07T08:45:44Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2022-04-22T15:05:36Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=320245536a7ad21606286d9dcf54acf3bdf096c6'/>
<id>urn:sha1:320245536a7ad21606286d9dcf54acf3bdf096c6</id>
<content type='text'>
Some of our headers use APT_COMPILING_APT trickery to avoid exposing too
broadly details we don't want external clients to know and make use of.
The flip-side is that this can lead to different compilation units
seeing different definitions if they aren't all using the same config.
</content>
</entry>
<entry>
<title>Remove unused public zlib include from libapt fileutl.h</title>
<updated>2022-05-07T08:45:44Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2022-04-21T01:01:22Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8fd65748589bb1e0b671d4a291521bfba1664c5c'/>
<id>urn:sha1:8fd65748589bb1e0b671d4a291521bfba1664c5c</id>
<content type='text'>
Our public interface doesn't use zlib for quite a while now so lets drop
the last remnants as hopefully nobody depends on us bringing it in…
Unlike our own private lib for transitive provision of unistd.h.

References: 680b916ce7203a40ebd0a3882b9a71ca77278a67
</content>
</entry>
<entry>
<title>Merge branch 'fix/tagfilekeys' into 'main'</title>
<updated>2022-05-06T16:20:52Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2022-05-06T16:20:52Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=97f16727b50dcaa4810e80d3c16639e0ce6a0958'/>
<id>urn:sha1:97f16727b50dcaa4810e80d3c16639e0ce6a0958</id>
<content type='text'>
Consistently dealing with fields via pkgTagSection::Key

See merge request apt-team/apt!233</content>
</entry>
<entry>
<title>Merge branch 'pu/gcc-12' into 'main'</title>
<updated>2022-05-06T16:20:00Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2022-05-06T16:20:00Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6778e2d672d84c962a578f6de415c666b9cf6ee1'/>
<id>urn:sha1:6778e2d672d84c962a578f6de415c666b9cf6ee1</id>
<content type='text'>
Avoid use of deprecated std::iterator (twice)

See merge request apt-team/apt!232</content>
</entry>
<entry>
<title>Only protect two kernels, not last installed one</title>
<updated>2022-04-07T11:19:52Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2022-04-06T11:51:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=824651ded0bcf8603e9b508860b8fe5a68fc53ff'/>
<id>urn:sha1:824651ded0bcf8603e9b508860b8fe5a68fc53ff</id>
<content type='text'>
The kernel autoremoval algorithm was written to accomodate
for Ubuntu's boot partition sizing, which was written to
accomodate 3 kernels - 2 installed ones + a new one being
unpacked.

It seems that when the algorithm was designed, it was overlooked
that it actually kept 3 kernels.

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