<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/depcache.cc, branch 2.9.28</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.9.28</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.9.28'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2025-02-03T12:40:37Z</updated>
<entry>
<title>Measure BootSize as integer</title>
<updated>2025-02-03T12:40:37Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-03T12:19:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=452586e84ad54ca23dee399bf9809c49e7171f36'/>
<id>urn:sha1:452586e84ad54ca23dee399bf9809c49e7171f36</id>
<content type='text'>
I don't know why I used a double here this is awkward.
</content>
</entry>
<entry>
<title>Correctly calculate kernel size in /boot</title>
<updated>2025-02-03T12:40:37Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-03T12:07:37Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c303750ecb89b7210fe998515432e358b3cc0cff'/>
<id>urn:sha1:c303750ecb89b7210fe998515432e358b3cc0cff</id>
<content type='text'>
Change the code to get the size from the existing vmlinuz,
rather than using the package size, which only worked in
Ubuntu, and possibly not on all kernel packages either.

Refactor the code a bit to avoid the nested if as well,
and use off_t to measure and sum the sizes before switching
to floating point.

Closes: #1085184
</content>
</entry>
<entry>
<title>Drop usage of macro APT_OVERRIDE for simple override</title>
<updated>2025-01-05T22:16:08Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-12-26T19:41:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f73593a4034d9eec0ec4466b8e173d4a4daece1f'/>
<id>urn:sha1:f73593a4034d9eec0ec4466b8e173d4a4daece1f</id>
<content type='text'>
We were rather inconsistent in using it and as our public headers
contain deduction guides (a c++17 feature) it seems silly to try to hide
a c++11 feature in a macro, so lets stop this charade and drop the
macro and while we are changing all these lines lets apply [[nodiscard]]
(another c++17 feature) and other suggestions from clang-tidy and
formatting for a little more consistency.
</content>
</entry>
<entry>
<title>Do not mark new if we have already installed providers</title>
<updated>2024-05-16T20:12:51Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-05-16T13:41:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=b1c3039dae19553bff19615fbb4d116aeaa644a7'/>
<id>urn:sha1:b1c3039dae19553bff19615fbb4d116aeaa644a7</id>
<content type='text'>
The test is actually documenting another bug hidden a bit by this one as
we do not need to install a NEW package in this situation as the upgrade
needing it was kept back, but it was protected from considering it to
be autoremoveable as all providers tend to be considered protected, but
by limiting us to installed providers if we have some we can drag those
new packages out of hiding.

Now, we "just" have to get right of the NEW package in a next step.
</content>
</entry>
<entry>
<title>Do not upgrade rev-deps ear-marked for removal</title>
<updated>2024-04-24T13:16:21Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-03-14T20:59:10Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d030a1041b243c45dcd41e34d3c2b21cf1a533ba'/>
<id>urn:sha1:d030a1041b243c45dcd41e34d3c2b21cf1a533ba</id>
<content type='text'>
We schedule reverse dependencies for an upgrade, but we shouldn't do it
if we have ear-marked this package for removal later on. Usually the
solver will end up doing the right thing like it already did in the
included testcase in the end, but given that before it reaches the right
end it explored a bad path which can lead to more installs and removals
influencing later decisions or are just too hard for the resolver to
undo later on, we can just not explore this path to begin with.

References: e077370ffcb3669a50a600e80356c2002e6b176d
</content>
</entry>
<entry>
<title>Show space estimate for /boot, if separate; or estimate initrd for /usr</title>
<updated>2024-04-13T18:27:48Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2024-04-13T18:27:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f7e5ed3c8dffcdfc2c55c63f2e3cbcb390bbf013'/>
<id>urn:sha1:f7e5ed3c8dffcdfc2c55c63f2e3cbcb390bbf013</id>
<content type='text'>
Calculate an estimate of 110% of the biggest initrd + system.map
as the additional space a kernel needs in /boot.

If /boot is a different file system than /usr, print the size of
the kernels + the additional space they will need separately;
otherwise include it in our /usr figure.
</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>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>Use a more gitignore style matching</title>
<updated>2023-02-27T13:44:12Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2023-02-27T13:41:52Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=557aed9806b59bebac33f4589bafc25fcb8a2728'/>
<id>urn:sha1:557aed9806b59bebac33f4589bafc25fcb8a2728</id>
<content type='text'>
Use a rightmost match for / so that if we end up with a Section: a/b/c,
a 'c' matcher still matches.

If the section does not contain any /, it can be matched using /pattern,
e.g. /c only matches Section: c, but not Section: a/b/c.
</content>
</entry>
<entry>
<title>Have values in Section config trees refer to them in all components</title>
<updated>2023-01-29T23:55:05Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2023-01-29T15:54:39Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8aeb07448c09375c730c76a6baf31303b129bb96'/>
<id>urn:sha1:8aeb07448c09375c730c76a6baf31303b129bb96</id>
<content type='text'>
Hard coding each and every component is not only boring but given that
everyone is free to add or use more we end up in situations in which apt
behaves differently for the same binary package just because metadata
said it is in different components (e.g. non-free vs. non-free-firmware).
It is also probably not what the casual user would expect.

So we instead treat a value without a component as if it applies for all
of them. The previous behaviour can be restored by prefixing the value
with "&lt;undefined&gt;/" as in the component is not defined.

In an ideal world we would probably use "*/foo" for the new default
instead of changing the behaviour for "foo", but it seems rather
unlikely that the old behaviour is actually desired. All existing values
were duplicated for all (previously) known components in Debian and
Ubuntu.
</content>
</entry>
</feed>
