<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/pkgcache.cc, branch 3.1.12</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=3.1.12</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=3.1.12'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2025-10-25T18:42:14Z</updated>
<entry>
<title>Implement architecture variants</title>
<updated>2025-10-25T18:42:14Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-01-07T16:39:32Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9d62eef571ffd1fd2df8b97884d3689fced27fb1'/>
<id>urn:sha1:9d62eef571ffd1fd2df8b97884d3689fced27fb1</id>
<content type='text'>
Architecture variants are children of an architecture that share
the same ABI but are optimized for different ISA levels. They
are available in Ubuntu 25.10 and newer, and not supported in
Debian or other distributions.

A deb built for a variant contains the Architecture-Variant field,
and the Architecture field points to the baseline, for example:

    Architecture: amd64
    Architecture-Variant: amd64v3

However, the apt-get indextargets command reports the variant in the
Architecture: field, and most of the code in APT presents the variant
as the architecture.

There are two types of variants:

1. Standalone variants are recorded in the Architectures field of the
   Release file as if they were a real architecture:

        Architectures: amd64 amd64v3

   Standalone architecture variants only fetch the standalone
   architecture variant's Packages file. To do this, this patch
   changes the code such that the variants indextargets "supplant"
   the base targets.

   This may have complicated outcomes on the apt-get indextargets
   command.

2. Other variants can only be identified by their files being recorded
   with hashes in the Release file.

   APT fetches both the base architecture's as well as the variant's
   Packages file.

Variants are configured in the

    APT::Architecture-Variants

list.

Image builders may want to build specific variant images using

    APT::Architecture-Variants { "amd64v3"; }

But this commit also implements an automatic discovery mechanism
using the varianttable and /proc/cpuinfo.

    APT::Architecture-Variants "auto";
</content>
</entry>
<entry>
<title>Consider 0-size debs not downloadable, set a size in EDSP</title>
<updated>2025-03-03T10:21:55Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-26T11:18:39Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=b33677749142e0997121d358277b18136bdbef87'/>
<id>urn:sha1:b33677749142e0997121d358277b18136bdbef87</id>
<content type='text'>
EDSP dumps all appear as a single file, so we cannot determine
correctly if a package is obsolete. We can fix this by ensuring
that only debs with a size are downloadable, and then by faking
a size in EDSP: The size is 1 if APT-Release is set (there is
a source to download it from) or 0 otherwise.

This ensures that the obsolete logic in solver3 works correctly,
as well as the obsolete patterns, if anyone could actually use
it on the EDSP files.
</content>
</entry>
<entry>
<title>cache: Introduce partial SourceVersion support</title>
<updated>2025-02-15T15:37:19Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-15T15:37:19Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4bcb198a67156b2654f3b64173499ab78f0d4d9a'/>
<id>urn:sha1:4bcb198a67156b2654f3b64173499ab78f0d4d9a</id>
<content type='text'>
This is the first step that introduces a 1:1 mapping between version
and source version. In a future version this can use the fields
currently marked unavailable to deduplicate the SourceVersion
objects across the group.

The policy gains a member for storing pins for sourceversions.

Together, in the future we should be able to determine candidates
for source versions.
</content>
</entry>
<entry>
<title>Drop APT::StringView</title>
<updated>2025-02-14T18:45:12Z</updated>
<author>
<name>наб</name>
<email>nabijaczleweli@nabijaczleweli.xyz</email>
</author>
<published>2024-11-12T17:22:44Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4f6d379124bc51a09608fa3f45d66713f927b959'/>
<id>urn:sha1:4f6d379124bc51a09608fa3f45d66713f927b959</id>
<content type='text'>
</content>
</entry>
<entry>
<title>APT::StringView -&gt; std::string_view [textonly]</title>
<updated>2025-02-14T18:45:12Z</updated>
<author>
<name>наб</name>
<email>nabijaczleweli@nabijaczleweli.xyz</email>
</author>
<published>2024-11-12T16:59:18Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=793c9b1f3059c35b66c19f62fa39b6607809fea0'/>
<id>urn:sha1:793c9b1f3059c35b66c19f62fa39b6607809fea0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add DepIterator::IsSatisfied(PkgIterator)</title>
<updated>2025-02-14T18:04:56Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-03T18:00:25Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=50f1335212909962b9bba8db74e8be005a55f4e1'/>
<id>urn:sha1:50f1335212909962b9bba8db74e8be005a55f4e1</id>
<content type='text'>
This allows checking if a dependency is satisfied by all versions
of a package.
</content>
</entry>
<entry>
<title>Include Extra in the size counted for Version struct</title>
<updated>2025-01-30T23:39:50Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2025-01-30T23:39:50Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ce3794a7df13f3d7387b4e4520221421ee92127b'/>
<id>urn:sha1:ce3794a7df13f3d7387b4e4520221421ee92127b</id>
<content type='text'>
It is a tiny struct, so the difference in 'stats' is minor even with all
the versions but it is more correct and also helps in case the Extra
struct is changed to predictably trigger a binary cache invalidation.
</content>
</entry>
<entry>
<title>Write Pre-Depends with a dash again in EDSP</title>
<updated>2025-01-17T00:27:48Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2025-01-17T00:01:13Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4454fd246b3b7f605dcd272b2107313ba53688c5'/>
<id>urn:sha1:4454fd246b3b7f605dcd272b2107313ba53688c5</id>
<content type='text'>
For some reason ~ that I don't know and can't come up with on the spot ~
we output the Pre-Depends field as PreDepends in the translated
user-visible output and I accidentally copied that over to the
untranslated variant that replaced the embedded copy (with a dash)
in the EDSP generator.

Code-copies and implementation details littered all over the place are
apparently sometimes a good bug-free thing, too…

Regression-of: 6828ae2c2f9268c8187f0fa91b3c464ed84a8476
Closes: #1093254
</content>
</entry>
<entry>
<title>Drop the remaining usage of APT_ARRAY_SIZE</title>
<updated>2025-01-05T22:16:08Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-12-26T20:46:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1e2b5197ee350a36fbad006f198bbf8e9a5c8e53'/>
<id>urn:sha1:1e2b5197ee350a36fbad006f198bbf8e9a5c8e53</id>
<content type='text'>
That macro is not that useful as it might perhaps once was. Lets prepare
dropping it now in favour of more standard ways of working with arrays
now.
</content>
</entry>
<entry>
<title>Add pkgCache::{Priority,DepType}_NoL10n to avoid duplication</title>
<updated>2025-01-05T22:16:08Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-12-26T20:43:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6828ae2c2f9268c8187f0fa91b3c464ed84a8476'/>
<id>urn:sha1:6828ae2c2f9268c8187f0fa91b3c464ed84a8476</id>
<content type='text'>
We don't have many places, but lets reduce the amount of duplicating
these short strings, so that we may find all the places we have to
change if that ever happens.
</content>
</entry>
</feed>
