[Pkg-rust-maintainers] Bug#1057736: rust-src: Ship Cargo.lock to enable "cargo -Z build-std" usecase

Jonathan Neuschäfer j.neuschaefer at gmx.net
Thu Dec 7 19:01:41 GMT 2023


Package: cargo
Version: 0.66.0+ds1-1
Severity: wishlist

Cargo has a new (nightly) feature, build-std[1], which rebuilds the
standard library along with the target crate. This is especially useful
when cross-compiling, as Debian doesn't ship the standard library
pre-built for other architectures.

This requires Cargo.lock, not just Cargo.toml in the rust source
directory, but the rust-src Debian package only contains Cargo.toml
right now[2].


## Potential downsides of shipping Cargo.toml

- cargo -Z build-std is currently a nightly feature, and the rust
  toolchain in Debian is not nightly, so build-std is only usable with
  some tricks[3].
- However, I think it wouldn't do harm to include Cargo.lock in the
  package.


[1]: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#build-std
[2]: https://salsa.debian.org/rust-team/rust/-/blob/debian/sid/debian/rust-src.install?ref_type=heads
[3]: RUSTC_BOOTSTRAP=1 tricks cargo into allowing nightly features,
     RUSTFLAGS=-Clinker=arm-linux-gnueabi-gcc appears to be necessary as well

-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.5.0-4-amd64 (SMP w/12 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages cargo depends on:
ii  binutils               2.41.50.20231202-1
ii  clang                  1:16.0-57
ii  clang-14 [c-compiler]  1:14.0.6-16
ii  clang-16 [c-compiler]  1:16.0.6-19
ii  gcc [c-compiler]       4:13.2.0-2
ii  gcc-11 [c-compiler]    11.4.0-5
ii  gcc-12 [c-compiler]    12.3.0-11
ii  gcc-13 [c-compiler]    13.2.0-7
ii  libc6                  2.37-12
ii  libcurl3-gnutls        8.4.0-2
ii  libgcc-s1              13.2.0-7
ii  libgit2-1.5            1.5.1+ds-1
ii  libssh2-1              1.11.0-3
ii  libssl3                3.0.11-1
ii  rustc                  1.70.0+dfsg1-1
ii  zlib1g                 1:1.2.13.dfsg-3

cargo recommends no packages.

Versions of packages cargo suggests:
pn  cargo-doc  <none>
ii  python3    3.11.4-5+b1

-- no debconf information



More information about the Pkg-rust-maintainers mailing list