<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/tagfile-order.c, 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>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>Do not order long obsoleted fields anymore</title>
<updated>2022-04-01T12:16:19Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2022-03-28T13:47:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2005f1c263a942b37d179b9b8f9b7ab343ca7459'/>
<id>urn:sha1:2005f1c263a942b37d179b9b8f9b7ab343ca7459</id>
<content type='text'>
The dependency relation fields old names were deprecated in 1995
as the new ones were introduced. That seems barely long enough now
as a transition period.
</content>
</entry>
<entry>
<title>Drop support for long obsoleted Suggests alias: Optional</title>
<updated>2022-04-01T12:16:15Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2022-03-28T13:25:36Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7b8da771e2061462b9196f38366c34e4f919d0df'/>
<id>urn:sha1:7b8da771e2061462b9196f38366c34e4f919d0df</id>
<content type='text'>
dpkg-dev stopped recognizing it in 2007 (1.14.7) while building packages.
The rename itself happened in 1995 (0.93.72).
</content>
</entry>
<entry>
<title>Document tagfile-keys.h as internal to apt</title>
<updated>2022-04-01T12:15:26Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2022-03-28T13:19:11Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f6438ea9e726a1c13ce8d90ac78cc272346ab0f8'/>
<id>urn:sha1:f6438ea9e726a1c13ce8d90ac78cc272346ab0f8</id>
<content type='text'>
The previous regime of the file was to sort it on insert, but that
changes the values in the generated enum, which is fine as long as we
only use it in libapt itself, but breaks on other users.

The header was always intended to be private to apt itself, so we just
document this here now and lay the ground work to have the file in the
future only appended to, so that it remains sufficiently ABI stable that
we can use it outside the library in our apt tools.

We also remove some fields apt is unlikely to need or only uses in
certain cases outside of any (speed) critical path to have enough room
to add more fields soon as currently we are limited to 128 fields max
and it would be sad if we use up that allowance entirely already.
</content>
</entry>
<entry>
<title>Recognize Static-Built-Using and order it below Built-Using</title>
<updated>2022-04-01T09:44:17Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2022-03-26T10:29:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=889462ec33480940a355589b0ae57987f17a86e2'/>
<id>urn:sha1:889462ec33480940a355589b0ae57987f17a86e2</id>
<content type='text'>
dpkg added a new field (see there for details) which breaks our
testcases due to an unknown field. apt doesn't make use of the field,
but we can at least order it nicely in output we generate.

References: dpkg commit 16c412439c5eac5f32930946df9006dfc13efc02
Closes: #1008759
</content>
</entry>
<entry>
<title>Add basic support for the Protected field</title>
<updated>2020-06-29T15:32:17Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-06-29T15:31:06Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ddd8fc3d28cd8e668868158049ced7fa3c8c71b8'/>
<id>urn:sha1:ddd8fc3d28cd8e668868158049ced7fa3c8c71b8</id>
<content type='text'>
This will be mapped to Important for the time being.
</content>
</entry>
<entry>
<title>Fix testsuite for and add new fields from dpkg 1.19</title>
<updated>2017-10-20T21:40:53Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-10-20T21:37:36Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=404dececf913d3c09368a73ca00aa8172dbf6865'/>
<id>urn:sha1:404dececf913d3c09368a73ca00aa8172dbf6865</id>
<content type='text'>
tagfile-order.c: Add missing fields from dpkg 1.19

For binary packages, this is Build-Essential; for source packages,
it is Description.

test-bug-718329-...: Ignore control.tar.*, changes in dpkg 1.19

test-apt-extracttemplates: Fix for dpkg 1.19
</content>
</entry>
<entry>
<title>add Auto-Built-Package to tagfile-order</title>
<updated>2017-02-09T11:59:05Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-02-09T09:15:18Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f09735bfa051b8c830b467ee8d78138c9f1aa808'/>
<id>urn:sha1:f09735bfa051b8c830b467ee8d78138c9f1aa808</id>
<content type='text'>
Added in dpkg commit 6c8203440bf443d3031ee2ab8485b16c1b6da3b6
</content>
</entry>
<entry>
<title>add Testsuite-Triggers to tagfile-order</title>
<updated>2016-07-08T10:43:55Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-07-08T09:49:36Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=13a6bb6d99da52cef1d195dfe37430b549ae62db'/>
<id>urn:sha1:13a6bb6d99da52cef1d195dfe37430b549ae62db</id>
<content type='text'>
Added in dpkg in commit 90324cfa942ba23d5d44b28b1087fbd510340502.
</content>
</entry>
<entry>
<title>sync TFRewrite*Order arrays with dpkg and dak</title>
<updated>2015-05-11T15:22:32Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2015-05-09T16:55:41Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e8fb1cdfdd13e45f2b3abbd57a28b57ae6137f14'/>
<id>urn:sha1:e8fb1cdfdd13e45f2b3abbd57a28b57ae6137f14</id>
<content type='text'>
dpkg and dak know various field names and order them in their output,
while we have yet another order and have to play catch up with them as
we are sitting between chairs here and neither order is ideal for us,
too.

A little testcase is from now on supposed to help ensureing that we do
not derivate to far away from which fields dpkg knows and orders.
</content>
</entry>
</feed>
