Your message dated Sun, 08 Mar 2026 07:21:48 +0100
with message-id <177295090808.4004.1530631592872470382@localhost>
and subject line Re: Bug#1130055: sbuild is unable to cross-build linux on 
amd64 for arm64 due to rust-src
has caused the Debian Bug report #1130055,
regarding sbuild is unable to cross-build linux on amd64 for arm64 due to 
rust-src
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1130055: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1130055
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: sbuild
Version: 0.89.3+deb13u4

Not entirely clear if this is an issue with sbuild or with how linux is 
specifying its dependencies, but I am unable to cross-build the current 
unstable version (6.19.6-1) with sbuild due to an unmet dependency on rust-src. 

rust-src is an architecture all package just containing the rust source code.

Linux specifies a dependency on it via:

Build-Depends-Arch: .... rust-src (>= 1.78.0) [amd64 arm64 armhf loong64 
riscv64] <!pkg.linux.nokernel !pkg.linux.norust>...

I'm building using the following sbuild command (borrowed from the pocket 
reform debian package build):

DEB_BUILD_PROFILES="cross nodoc pkg.linux.nokerneldbg 
pkg.linux.nokerneldbginfo" sbuild --arch-any --build=amd64 --host=arm64 
--arch-all --verbose --clean-source --no-source-only-changes --no-run-lintian 
--no-run-autopkgtest

Each build fails with the following dose-check output:

output-version: 1.2
native-architecture: amd64
foreign-architecture: arm64
report:
 -
  package: sbuild-build-depends-main-dummy
  version: 0.invalid.0
  architecture: arm64
  status: broken
  reasons:
   -
    missing:
     pkg:
      package: sbuild-build-depends-main-dummy
      version: 0.invalid.0
      architecture: arm64
      unsat-dependency: rust-src:arm64 (>= 1.78.0)
 
background-packages: 106988
foreground-packages: 1
total-packages: 106989
broken-packages: 1


Neither moving this dependency to Build-Depends-Indep nor removing the 
architecture restrictions on it appear to resolve the issue. Changing the 
dependency to rust-src:all or rust-src:native does not work either, nor does 
changing the build dependency resolver to aptitude.

Disabling rust entirely with the build profile pkg.linux.norust solves my 
immediate issue, but as rust is likely to be more widely used in the kernel in 
the near future this workaround may soon become unworkable.


Thanks,
Jacob 

--- End Message ---
--- Begin Message ---
Hi Jacob,

Quoting Jacob Adams (2026-03-08 01:21:50)
> Not entirely clear if this is an issue with sbuild or with how linux is
> specifying its dependencies, but I am unable to cross-build the current
> unstable version (6.19.6-1) with sbuild due to an unmet dependency on
> rust-src.
> 
> rust-src is an architecture all package just containing the rust source code.

and importantly for this case: it is not Multi-Arch:foreign

> Linux specifies a dependency on it via:
> 
> Build-Depends-Arch: .... rust-src (>= 1.78.0) [amd64 arm64 armhf loong64 
> riscv64] <!pkg.linux.nokernel !pkg.linux.norust>...
> 
> I'm building using the following sbuild command (borrowed from the pocket 
> reform debian package build):

Oh a fellow Reform user! Hello! _o/

> DEB_BUILD_PROFILES="cross nodoc pkg.linux.nokerneldbg 
> pkg.linux.nokerneldbginfo" sbuild --arch-any --build=amd64 --host=arm64 
> --arch-all --verbose --clean-source --no-source-only-changes --no-run-lintian 
> --no-run-autopkgtest
> 
> Each build fails with the following dose-check output:
> 
> [snip]
> 
> Neither moving this dependency to Build-Depends-Indep

You should not do that. Build dependencies only belong into Build-Depends-Indep
if they are only required for building architecture independent packages. The
Linux kernel is not architecture independent.

> nor removing the architecture restrictions on it

These architecture restrictions only govern on which architectures that build
dependency is relevant. By removing it, rust-src will be considered on all
architectures and not only on amd64, arm64, armhf, loong64 and riscv64.

> appear to resolve the issue.  Changing the dependency to rust-src:all

That's an illegal architecture qualification.

> or rust-src:native

That should've done something different though.

> does not work either, nor does changing the build dependency resolver to
> aptitude.

Yes, because aptitude respects the same dependency relationships.

> Disabling rust entirely with the build profile pkg.linux.norust solves my
> immediate issue, but as rust is likely to be more widely used in the kernel
> in the near future this workaround may soon become unworkable.

The problem here is not sbuild but either src:linux or src:rustc, depending on
where the correct fix is to be applied. Either src:linux marks its build
dependency on rust-src with :native or src:rustc marks rust-src as
Multi-Arch:foreign. Doing either will fix the cross building issue.

The former was attempted here:
https://salsa.debian.org/kernel-team/linux/-/merge_requests/1771

But that merge request was closed because the Rust team decided that it is
indeed the correct choice to mark rust-src as Multi-Arch:foreign:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1101952

So you could either wait until rustc 1.92.0+dfsg1-1~exp1 or later lands in
unstable (it is currently in experimental) or you add rustc from experimental
to your build.

cross build issues are rarely problems with sbuild or apt. They usually are
issues in the involved packages and their inter-dependencies. If you don't know
where the problem is, you can post your issue to the list
[email protected] which is a mailing list for cross-building and
where people who can help you (including me) hang out.

Also consider checking out crossqa.debian.net which is a service which shows
you whether a package can currently be cross-built or not. In case of src:linux
you see the same issue as you have reported here:

https://crossqa.debian.net/src/linux

missing rust-src        amd64 → {arm64, armhf, riscv64}; arm64 → amd64

In any case, this is not a problem with sbuild, so I'm closing this bug here.

Feel free to follow up if you have any remaining questions.

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature


--- End Message ---

Reply via email to