<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/aptconfiguration.cc, branch 3.1.16</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=3.1.16</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=3.1.16'/>
<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>zstd: The compressor level should be -6, not -19</title>
<updated>2025-03-20T09:26:51Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-03-13T14:15:19Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c8b8f563ec2ff0f006a6d77469eaa656050f1fcc'/>
<id>urn:sha1:c8b8f563ec2ff0f006a6d77469eaa656050f1fcc</id>
<content type='text'>
We created a very slow zstd, we don't default to high levels
for other compressors...
</content>
</entry>
<entry>
<title>Add APT::Configuration::color helper to colorize things</title>
<updated>2024-04-19T14:58:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-04-19T13:57:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=58ee0fabc9028fcdf86faab3bb9c1db2b27e3644'/>
<id>urn:sha1:58ee0fabc9028fcdf86faab3bb9c1db2b27e3644</id>
<content type='text'>
</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>
<entry>
<title>Downgrade unmerged-usr from error to two warnings</title>
<updated>2023-09-20T07:47:47Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2023-09-20T07:46:51Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=925ada57d999a502dc2342092f32232b803be254'/>
<id>urn:sha1:925ada57d999a502dc2342092f32232b803be254</id>
<content type='text'>
One warning will be issued before the Y/n prompt, the other will
be issued at the end after package installs have been attempted
or if there were other failures, such that the last line you see
is warnings about unmerged-usr

I do not anticipate this to be the final version either, but
there we go.

Closes: #1052058
</content>
</entry>
<entry>
<title>Remove unnecessary explicit st_dev check for merged-usr</title>
<updated>2023-09-16T10:53:07Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2023-09-16T10:53:07Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=da2c2f702fb448857d94304adea0ecd3984c9c15'/>
<id>urn:sha1:da2c2f702fb448857d94304adea0ecd3984c9c15</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Only accept installs of usrmerge on unmerged-usr systems</title>
<updated>2023-09-16T10:37:31Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2023-09-16T10:34:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=99c888b5eabbb7008bf4451bc62c277f28bb925f'/>
<id>urn:sha1:99c888b5eabbb7008bf4451bc62c277f28bb925f</id>
<content type='text'>
As of bookworm, merged-usr is mandatory, and people got caught
in the crosshairs of the dpkg fsys-unmessusr debacle and inadvertently
reverted back to an unmerged configuration and continue to remain
on an unsupported system unknowingly.

Help them by erroring out when they are installing packages on /,
they are not in a chroot, and a usrmerge package is available.
</content>
</entry>
<entry>
<title>Streamline access to barbarian architecture functionality</title>
<updated>2021-09-04T14:20:12Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2021-09-04T14:10:50Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=70c669e2566d119559d2986635bb6c1d0d368073'/>
<id>urn:sha1:70c669e2566d119559d2986635bb6c1d0d368073</id>
<content type='text'>
APT is not the place this information should be stored at, but it is a
good place to experiment and see what will be (not) needed in the future
for a proper implementation higher up the stack.

This is why "BarbarianArchitectures" is chosen instead of a more neutral
and/or sensible "VeryForeign" and isn't readily exported in the API to
other clients for this PoC as a to be drawn up standard will likely
require potentially incompatible changes. Having a then outdated and
slightly different implementation block a "good" name would be bad.

The functionality itself mostly exists (ignoring bugs) since the
introduction of MultiArch as we always had the risk of encountering
packages of architectures not known to dpkg (forced onto the system,
potentially before MultiArch) we had to deal with somehow and other
edge cases.

All this commit really does is allowing what could previously only be
achieved with editing sources.list and some conf options via a single
config option: -o APT::BarbarianArchitectures=foo,bar
</content>
</entry>
<entry>
<title>Call ischroot with -t</title>
<updated>2021-01-11T10:39:38Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2021-01-11T10:39:38Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=229e73afa4d6e862262f898a7e58942c90939306'/>
<id>urn:sha1:229e73afa4d6e862262f898a7e58942c90939306</id>
<content type='text'>
We interpreted "cannot detect chroot" as "not a chroot", but it's
arguably the better idea to detect it as a chroot, to avoid new behavior
from phased updations in situations where it's unclear (no /proc mounted
or stuff).
</content>
</entry>
<entry>
<title>Fix getMachineID copy-paste error</title>
<updated>2021-01-08T17:02:10Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2021-01-08T17:02:10Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d43b1a03db9e17c69a15b2838fde69450764727a'/>
<id>urn:sha1:d43b1a03db9e17c69a15b2838fde69450764727a</id>
<content type='text'>
Gbp-Dch: ignore
</content>
</entry>
</feed>
