<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/deb/deblistparser.h, branch 3.1.11</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=3.1.11</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=3.1.11'/>
<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>debListParser: Cache `essential` and `myArch` more</title>
<updated>2025-08-26T11:49:18Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-07-24T20:08:52Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6abcb32f7df63c64b88a4fef57d38e219d2b6b42'/>
<id>urn:sha1:6abcb32f7df63c64b88a4fef57d38e219d2b6b42</id>
<content type='text'>
Lookup these variables in the constructor once, rather than
once per package.

This requires a bit of care as debListParser::UsePackage()
defaults to "all" for essential when unset, hence we simply
change its == "all" comparisons to == "all" || .empty().#

This removes any per-paragraph configuration lookups
from the file parser.

Also parse myArch from ParseProvides down to ParseDepends()
as that call ended up causing it to query APT::Architecture
*again* since the function we call is static.

Together, the removed config lookups safe about 2.3% of
cache generation runtime.
</content>
</entry>
<entry>
<title>Add missing #include &lt;string_view&gt;</title>
<updated>2025-02-15T15:57:45Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-02-15T15:57:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=957de0abd4a3c5fe9142b48455165498ea785b3c'/>
<id>urn:sha1:957de0abd4a3c5fe9142b48455165498ea785b3c</id>
<content type='text'>
</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>Drop APT_DEPRECATED usage</title>
<updated>2025-01-05T22:16:08Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-12-26T21:32:44Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=785a7a50b53bd0794e58cca31730818714992c00'/>
<id>urn:sha1:785a7a50b53bd0794e58cca31730818714992c00</id>
<content type='text'>
C++14 includes the standard attribute, so we can use that instead.
Note that we drop the deprecation of {Pkg,Dep}Iterator::operator&lt;&lt; as
this is ignored (a friends declaration must be a definition to have
attributes) very noisily by GCC &gt;= 12 and the methods can be somewhat
useful in debugging if you are to lazy to get APT::Pretty{Pkg,Dep}.
</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>Ensure we can build with APT_PKG_ABI &gt; 601</title>
<updated>2025-01-05T18:29:47Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-01-05T18:29:47Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=cf0257b4d2f559a914fcafa58e5819f624dc8599'/>
<id>urn:sha1:cf0257b4d2f559a914fcafa58e5819f624dc8599</id>
<content type='text'>
There were some references to APT::StringView that don't make much
sense anymore.
</content>
</entry>
<entry>
<title>Fix accidental ABI break in debListParser::ParseDepends</title>
<updated>2024-11-28T08:03:02Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2024-11-28T08:03:02Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=edf03432568598dec12dfd242e6a4ed03a881693'/>
<id>urn:sha1:edf03432568598dec12dfd242e6a4ed03a881693</id>
<content type='text'>
The version that accepted APT::StringView was marked
public.
</content>
</entry>
<entry>
<title>apt-pkg/deb/deblistparser.h: APT::StringView -&gt; std::string_view</title>
<updated>2024-11-12T19:36:21Z</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=503e14fbe7d41118a659ead6dde90ebfbc408de9'/>
<id>urn:sha1:503e14fbe7d41118a659ead6dde90ebfbc408de9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>apt-pkg/pkgcachegen.cc, apt-pkg/pkgcachegen.h: APT::StringView -&gt; std::string_view</title>
<updated>2024-11-12T19:36:20Z</updated>
<author>
<name>наб</name>
<email>nabijaczleweli@nabijaczleweli.xyz</email>
</author>
<published>2024-11-12T16:59:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e900ad1a727912b340aa43417bff895294854d3b'/>
<id>urn:sha1:e900ad1a727912b340aa43417bff895294854d3b</id>
<content type='text'>
</content>
</entry>
</feed>
