We don't need to know from the config if vdso files might be available.
We can just call the make target and let the build figure out if
something should exist. This removes one full config entry that needs
to be maintained.
- Add build.rust_build_depends, and build.enable_rust configuration
fields. The enable_rust field is expected to be set
per-architecture while rust_build_depends can be global.
- Define a pkg.linux.norust build profile which disables use of Rust.
- For architectures where build.enable_rust is set, Build-Depend on
everything in build.rust_build_depends, with a restriction to
<!pkg.linux.nokernel !pkg.linux.norust>.
This doesn't support compiling OOT modules written in Rust, which is a
rather harder problem.
PackageRelationGroup already supports adding architecture
qualification to all its entries. Add support for adding restrictions
(i.e. build profiles) in a similar way.
Currently the Debian-specific policy for the package's revision and
ABI name are in Python code. Any downstream distributions that
deviate from Debian policy or use different suite names may need to
patch the code.
Replace this policy with per-release configuration:
- debian_linux.config_v2: Add ConfigDebianrelease dataclass with
name_regex, abi_version_full, abi_suffix, and revision_regex
properties.
Add a debianrelease property (list of ConfigDebianrelease) in
Config, and a corresponding debianreleases property in ConfigMerged.
- debian_linux.debian: Delete extra revision attributes from
LinuxVersion.
- debian_linux.test_debian: Stop testing extra revision attributes
on LinuxVersion.
- d/b/stable-update: Check for '~exp' in Debian revision instead of
using linux_revision_experimental attribute.
- d/b/gencontrol.py: Find the matching release and use its properties
to generate the ABI name and validate the revision.
- d/c/defines.toml: Define UNRELEASED, experimental, unstable,
trixie/trixie-security, and bookworm-backports releases, and
default rules for any other suite.
Specify the same behaviour as before for ABI name.
Specify slightly stricter revision validation, since we know what
the target Debian release number should be if included.
debhelper supports to select files on a per-architecture (as
debian/package.filename.hostarch) or per-os (as
debian/package.filename.hostos) basis.
While we do not have the packages with different debhelper files for
different architectures, just support it if someone tries to do it.
linux-firmware.git now includes files with spaces in their names. In
WHENCE, these are quoted. Update parsing of File, RawFile, and Source
fields to handle this.
The firmware WHENCE file has (usually) one section per driver, but in
some cases there are multiple groups of firmware used with the same
driver that are under different licences.
We don't really need to care about representing the per-driver
sections in the WHENCE file, but we do need to associate the licence
information with the right group of files.
To fix this:
- Rename the FirmwareSection class to FirmwareGroup, and update
comments accordingly.
- When we see another field after a licence field, start a new group.
The linux-firmware WHENCE file now has RawFile fields, for files which
the kernel won't try to decompress (whereas for most files it will).
Handle these identically to File fields.
debhelper only cares about modes of files if it can be used to modify
their meaning, but then they are executed during the build. We have our
own templating scheme, so we don't need that.