<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/depcache.cc, branch 3.3.0</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=3.3.0</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=3.3.0'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2026-04-07T09:34:15Z</updated>
<entry>
<title>Fix Phased-Update-Percentage probability mistake</title>
<updated>2026-04-07T09:34:15Z</updated>
<author>
<name>Anders Kaseorg</name>
<email>andersk@mit.edu</email>
</author>
<published>2026-03-27T06:45:07Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=df55da00262a7a6b7f885e3fc66559767761cae5'/>
<id>urn:sha1:df55da00262a7a6b7f885e3fc66559767761cae5</id>
<content type='text'>
Previously a package with Phased-Update-Percentage: n would be updated
with probability (n + 1)/101 instead of n/100.  For example, a package
with Phased-Update-Percentage: 0 could still be updated even though it
shouldn’t, and a package with Phased-Update-Percentage: 1 would be
installed almost twice as much as it should be.  Correct the erroneous
math.

Note that libstdc++ implements std::uniform_int_distribution in such a
way that for a given seed, changing dist(0, 100) to dist(0, 99) has
the effect of decreasing each sample by 0 or 1; therefore, this patch
will not randomly trigger extra phased updates that had previously
been excluded.

Fixes: c5bc86d45e003905ef411146e66b414d26fb1ff8
Signed-off-by: Anders Kaseorg &lt;andersk@mit.edu&gt;
</content>
</entry>
<entry>
<title>Introduce JSONL performance counter logging</title>
<updated>2026-02-10T19:59:03Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2026-01-11T11:37:46Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=60a7d1c3be8f6c7eb697c7d5160fc560097cc70e'/>
<id>urn:sha1:60a7d1c3be8f6c7eb697c7d5160fc560097cc70e</id>
<content type='text'>
Introduce a scoped object that starts measuring performance counters
and then dumps them into a JSONL file for later analysis.

Add performance contexts for APT::Solver and pkgDepCache::Init()
as starting points.
</content>
</entry>
<entry>
<title>Revert "depcache: Allow changing multi-arch versions for removed siblings"</title>
<updated>2025-10-26T08:31:20Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-10-26T08:14:20Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=22786e32b613518ae3a5cd07e9e2f1419b2c6552'/>
<id>urn:sha1:22786e32b613518ae3a5cd07e9e2f1419b2c6552</id>
<content type='text'>
This reverts commit 74636b64a7ee56637a3ce4ddc1d060ca9f8b77e1.

Adjust the test case accordingly, as it is no longer possible to
install libgcc-s1:s390x. We need to sort this out in the ToDepCache
translation layer at a later time.

Sadly the depcache rejects valid solutions like this; solving this
isn't trivial. Technically we need to split up the FromUser and
auto-bit handling to solve this, but even then, MarkDelete() with
FromUser=0 moves the auto-bit on metapackages; this doesn't happen
when doing FromUser=1, so we can't always do FromUser=1.

Fixes: a3fca052ca21ad222ac7f2fdd7f3fe84b44beb60
</content>
</entry>
<entry>
<title>depcache: Allow changing multi-arch versions for removed siblings</title>
<updated>2025-10-25T20:16:54Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-10-25T19:24:10Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=74636b64a7ee56637a3ce4ddc1d060ca9f8b77e1'/>
<id>urn:sha1:74636b64a7ee56637a3ce4ddc1d060ca9f8b77e1</id>
<content type='text'>
Do not prevent us from changing the version of a foreign package
because a sibling that is being removed has a different candidate.
</content>
</entry>
<entry>
<title>depcache: Add a new UpgradeCount() member</title>
<updated>2025-03-08T23:12:27Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-18T12:37:38Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1ab3740704f8cf478d01ef95f4ef8152b79d7b87'/>
<id>urn:sha1:1ab3740704f8cf478d01ef95f4ef8152b79d7b87</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Introduce pkgDepCache::Transaction for transactional depcache updates</title>
<updated>2025-03-08T23:12:27Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-04T17:22:35Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=71d3d399d7de75a96b2911677b74ce8b59579ee9'/>
<id>urn:sha1:71d3d399d7de75a96b2911677b74ce8b59579ee9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: Deduplicate and Move SectionInSubTree to Configuration</title>
<updated>2025-02-18T09:56:45Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-17T20:33:30Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e8b240eb3aab7e2584e245f03700ede30a3fc23a'/>
<id>urn:sha1:e8b240eb3aab7e2584e245f03700ede30a3fc23a</id>
<content type='text'>
Deduplicate the copies in a central one, mark it unavailable to
external users.
</content>
</entry>
<entry>
<title>solver3: Defer 3.0 'deep' autoremoval to 3.1, fix autoremove</title>
<updated>2025-02-14T18:08:45Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-11T11:11:20Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4c48b5618ba15d4e33625cec81843891910e81a2'/>
<id>urn:sha1:4c48b5618ba15d4e33625cec81843891910e81a2</id>
<content type='text'>
Restore the depcache's MarkRequired logic for 3.0 solver; and
change the MarkInstall() call to pass a more correct value for
FromUser, to not override an existing automatic status.
</content>
</entry>
<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>
</feed>
