<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/deb/debmetaindex.cc, branch 3.3.1</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=3.3.1</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=3.3.1'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2026-04-08T08:37:24Z</updated>
<entry>
<title>apt: funcs called with a string literal consisting of a single character</title>
<updated>2026-04-08T08:37:24Z</updated>
<author>
<name>Herman Semenoff</name>
<email>GermanAizek@yandex.ru</email>
</author>
<published>2026-04-08T08:37:24Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=af5b9453a1908021cf75c348522c1a12eeb0dee4'/>
<id>urn:sha1:af5b9453a1908021cf75c348522c1a12eeb0dee4</id>
<content type='text'>
Benchmark:
- https://stackoverflow.com/questions/62058906/why-my-performance-benchmark-gives-me-wrong-results

References:
- https://clang.llvm.org/extra/clang-tidy/checks/performance/prefer-single-char-overloads.html
</content>
</entry>
<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>Add 'Include'/'Exclude' options to limit packages used from a repository</title>
<updated>2025-05-19T15:19:23Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-01-29T18:01:06Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=93416f3227685c390c7ab579981efde526134181'/>
<id>urn:sha1:93416f3227685c390c7ab579981efde526134181</id>
<content type='text'>
'Include' allows limiting a repository to a allowlist of packages,
'Exclude' allows removing packages from a repository.

Implementation wise this is not the nicest as it goes via the
IndexTarget options, so we first parse our option value into a
vector, then we turn the vector into a string, and then vectorize
it again. That said, we support both "," and " " as separators due
to the construction (we split by "," then we join using " ").

Gbp-Dch: full
</content>
</entry>
<entry>
<title>Remove leftovers of the apt-key removal</title>
<updated>2025-01-05T22:16:09Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-12-27T02:16:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=25cd3ded69a79c2a7eb3d858e041f1509f5f5ed8'/>
<id>urn:sha1:25cd3ded69a79c2a7eb3d858e041f1509f5f5ed8</id>
<content type='text'>
References: a00fbbdb28cc31e78882301c2efe7218583ab4cb
</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>apt-pkg/deb/debmetaindex.cc: prepare for APT::StringView -&gt; std::string_view</title>
<updated>2024-11-12T19:36:18Z</updated>
<author>
<name>наб</name>
<email>nabijaczleweli@nabijaczleweli.xyz</email>
</author>
<published>2024-11-12T16:59:19Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=bd65dba7361047ae1048e1b73500ca26b7e96102'/>
<id>urn:sha1:bd65dba7361047ae1048e1b73500ca26b7e96102</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Do not return error if `Signed-By` value in source list is empty</title>
<updated>2024-07-12T03:28:47Z</updated>
<author>
<name>Aristo Chen</name>
<email>aristo.chen@canonical.com</email>
</author>
<published>2024-07-05T09:01:32Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4b537e415aa3888ffe029664bc8238078bdc880a'/>
<id>urn:sha1:4b537e415aa3888ffe029664bc8238078bdc880a</id>
<content type='text'>
Signed-off-by: Aristo Chen &lt;aristo.chen@canonical.com&gt;
</content>
</entry>
<entry>
<title>Delete SHADOWED metaIndex if we don't actually use snapshots</title>
<updated>2024-02-20T17:50:14Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-02-20T08:56:06Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e2949fc463f9e087978b072c82b11860ee02fdb6'/>
<id>urn:sha1:e2949fc463f9e087978b072c82b11860ee02fdb6</id>
<content type='text'>
This adds a bit more code but avoids any surprises later on by
having both the shadowed and non-shadowed meta index in the
list.

Gbp-Dch: ignore
</content>
</entry>
<entry>
<title>Automatically enable snapshots where supported</title>
<updated>2024-02-20T17:50:14Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-02-19T11:07:55Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=b6274188312e6338e94edc45dbf9cc410d650477'/>
<id>urn:sha1:b6274188312e6338e94edc45dbf9cc410d650477</id>
<content type='text'>
Convert sources.list Snapshot option from opt-in to automatic. If
we can find a snapshot server, Snapshot: yes is assumed if a snapshot
is specified.

On the implementation side, we record automatic snapshot enablement
by adding a '?' suffix to the snapshot timestamp, if any is specified,
this avoids introducing bugs into the code where we could end up with
an empty snapshot.

This has an annoying internal implementation caveat: Since we call
GetDebReleaseIndexBy() with the SHADOWED option emplaced, if we do
not find a server, we need to remove the SHADOWED option again, but
we already have inserted a shadowed release index into the list.

This will simply insert the release index a second time without the
SHADOWED option which in preliminary testing works fine, but it would
arguably be more correct to also remove the release index again if
we have created it.

FIXME: This only has one test case: A source with supported snapshot
server is auto-discovered. We should also add a test case where we
cannot detect a server and then don't fail in automatic mode.
</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>
</feed>
