[Pkg-rust-maintainers] rust-winapi-x86-64-pc-windows-gnu_0.4.0-1_source.changes REJECTED

Ximin Luo infinity0 at debian.org
Fri Jun 22 02:27:00 BST 2018

Josh Triplett:
> On Thu, Jun 21, 2018 at 08:22:49PM +0000, Debian FTP Masters wrote:
>> binary:librust-winapi-x86-64-pc-windows-gnu-dev is NEW.
>> source:rust-winapi-x86-64-pc-windows-gnu is NEW.
> ...wait, what?
> How did the architecture end up in the package name, here?
> This is a library crate package; it should just consist of source, and
> be "Arch: all".

I'm pretty sure the crate name itself does contain that architecture specific string, the Debian equivalent is "amd64" anyway.

All NEW packages need to be built when uploaded to Debian. If you use the convenience scripts in debcargo-conf.git[1] then `./release.sh` will output nice shell commands you can run to do the build using `sbuild(1)`. I do recommend using these scripts, we are trying to centralise these configs, and they output some very nice instructions that I wrote that guides you through the whole process of writing debcargo overrides etc.

Your point about "Architecture: all" actually touches upon an unrelated issue, we are now generating library packages as "Architecture: any, Multi-Arch: same" to support cross-compiling. This is necessary due to some limitations in the current Multi-Arch spec. There is unfortunately some duplication but I brought the issue up on #debian-dpkg and this workaround is indeed the current recommendation.

Basically when cross-compiling it is not possible for dpkg to correctly resolve a dependency from arch:all -> arch:all -> arch:any and select the target/foreign/DEB_HOST_ARCH-architecture for the arch:any in that chain, it will select the host/native/DEB_BUILD_ARCH-architecture instead. This occurs when we have dependencies on native libs, but unfortunately affects every rust crate.


[1] https://salsa.debian.org/rust-team/debcargo-conf

GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE

More information about the Pkg-rust-maintainers mailing list