deb,quirks: generic dependency rules for build-dep workarounds
The resolute linux and linux-riscv controls declare llvm-21-dev unqualified while their other llvm pieces are :native, so the dpkg cross rules resolve it against the host architecture — whose dependency closure needs python3:riscv64, conflicting with the python3 the control itself declares :native. No resolver can install that set; sbuild fails on it identically. Give the deb quirks a dependencies rule set rather than a one-off native-qualification knob: replace rewrites a declared dependency by name with a full dependency string (qualifier, version and restrictions included), inject adds dependencies resolved as if declared, drop ignores declared ones. Entries are scoped by series so they can be dropped when the upstream packaging catches up, and rule names that match nothing are warned about so stale quirks surface. Ship the llvm-21-dev entry for the resolute kernels: resolve it as llvm-21-dev:native, keeping the declared <!stage1> restriction.
This commit is contained in:
+31
-3
@@ -1,15 +1,43 @@
|
||||
# Quirks configuration for package-specific workarounds
|
||||
# This file defines package-specific quirks that are applied during pull and deb operations
|
||||
#
|
||||
# Entries can be scoped with `series`: an empty list applies to every
|
||||
# series, otherwise only the listed ones. Packaging workarounds should
|
||||
# carry the series they were verified against so they can be dropped once
|
||||
# the upstream packaging catches up.
|
||||
|
||||
quirks:
|
||||
|
||||
# The resolute kernels declare `llvm-21-dev` unqualified while their
|
||||
# other llvm pieces are `:native`; the dpkg cross rules then resolve it
|
||||
# against the host architecture, whose dependency closure conflicts with
|
||||
# the `:native` python3. Resolve it against the build architecture
|
||||
# until the control is fixed upstream.
|
||||
linux:
|
||||
deb:
|
||||
series: [resolute]
|
||||
dependencies:
|
||||
replace:
|
||||
llvm-21-dev: llvm-21-dev:native <!stage1>
|
||||
linux-riscv:
|
||||
deb:
|
||||
series: [resolute]
|
||||
dependencies:
|
||||
replace:
|
||||
llvm-21-dev: llvm-21-dev:native <!stage1>
|
||||
|
||||
# Add more packages and their quirks as needed
|
||||
# example-package:
|
||||
# pull:
|
||||
# method: archive
|
||||
# deb:
|
||||
# extra_dependencies:
|
||||
# - another-dependency
|
||||
# series: [noble]
|
||||
# dependencies:
|
||||
# replace:
|
||||
# old-dep: new-dep (>= 2) [linux-any]
|
||||
# inject:
|
||||
# - missing-dep
|
||||
# drop:
|
||||
# - broken-dep
|
||||
# parameters:
|
||||
# key: value
|
||||
|
||||
|
||||
Reference in New Issue
Block a user