lcitool: use newer Rust for Debian and Ubuntu

On Debian, the rustc-web package provides a newer Rust compiler (1.78)
for all architectures except mips64el.

On Ubuntu, Rust versions up to 1.80 (?) are available as of this writing
for both Jammy (22.04) and Noble (24.04).  However, the path to rustc
and rustdoc must be provided by hand to the configure script using
either command line arguments or environment variables.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2025-05-02 10:21:42 +02:00
parent a9e0c9c0f1
commit 641f1c5386
15 changed files with 29 additions and 17 deletions

View File

@ -118,9 +118,14 @@ Rust build dependencies
include bindgen or have an older version, it is recommended to install
a newer version using ``cargo install bindgen-cli``.
Developers may want to use Cargo-based tools in the QEMU source tree;
this requires Cargo 1.74.0. Note that Cargo is not required in order
to build QEMU.
QEMU requires Rust 1.77.0. This is available on all supported platforms
with one exception, namely the ``mips64el`` architecture on Debian bookworm.
For all other architectures, Debian bookworm provides a new-enough Rust
compiler in the ``rustc-web`` package.
Also, on Ubuntu 22.04 or 24.04 this requires the ``rustc-1.77``
(or newer) package. The path to ``rustc`` and ``rustdoc`` must be
provided manually to the configure script.
Optional build dependencies
Build components whose absence does not affect the ability to build QEMU

View File

@ -114,7 +114,7 @@ packages:
- python3-venv
- python3-yaml
- rpm2cpio
- rustc
- rustc-1.77
- sed
- socat
- sparse

View File

@ -112,7 +112,7 @@ packages:
- python3-venv
- python3-yaml
- rpm2cpio
- rustc
- rustc-1.77
- sed
- socat
- sparse

View File

@ -50,7 +50,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \
python3-yaml \
rpm2cpio \
rustc \
rustc-web \
sed \
socat \
sparse \

View File

@ -50,7 +50,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \
python3-yaml \
rpm2cpio \
rustc \
rustc-web \
sed \
socat \
sparse \

View File

@ -50,7 +50,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \
python3-yaml \
rpm2cpio \
rustc \
rustc-web \
sed \
socat \
sparse \

View File

@ -50,7 +50,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \
python3-yaml \
rpm2cpio \
rustc \
rustc-web \
sed \
socat \
sparse \

View File

@ -50,7 +50,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \
python3-yaml \
rpm2cpio \
rustc \
rustc-web \
sed \
socat \
sparse \

View File

@ -50,7 +50,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \
python3-yaml \
rpm2cpio \
rustc \
rustc-web \
sed \
socat \
sparse \

View File

@ -50,7 +50,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \
python3-yaml \
rpm2cpio \
rustc \
rustc-web \
sed \
socat \
sparse \

View File

@ -50,7 +50,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \
python3-yaml \
rpm2cpio \
rustc \
rustc-web \
sed \
socat \
sparse \

View File

@ -122,7 +122,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \
python3-yaml \
rpm2cpio \
rustc \
rustc-web \
sed \
socat \
sparse \

View File

@ -121,7 +121,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \
python3-yaml \
rpm2cpio \
rustc \
rustc-1.77 \
sed \
socat \
sparse \
@ -150,6 +150,7 @@ ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
ENV RUSTC=/usr/bin/rustc-1.77
ENV CARGO_HOME=/usr/local/cargo
ENV PATH=$CARGO_HOME/bin:$PATH
RUN DEBIAN_FRONTEND=noninteractive eatmydata \

View File

@ -64,6 +64,11 @@ mappings:
python3-wheel:
OpenSUSELeap15: python311-pip
rust:
Debian12: rustc-web
Ubuntu2204: rustc-1.77
Ubuntu2404: rustc-1.77
pypi_mappings:
# Request more recent version
meson:

View File

@ -141,7 +141,8 @@ fedora_rustup_nightly_extras = [
'RUN $CARGO --list\n',
]
ubuntu2204_bindgen_extras = [
ubuntu2204_rust_extras = [
"ENV RUSTC=/usr/bin/rustc-1.77\n",
"ENV CARGO_HOME=/usr/local/cargo\n",
'ENV PATH=$CARGO_HOME/bin:$PATH\n',
"RUN DEBIAN_FRONTEND=noninteractive eatmydata \\\n",
@ -170,7 +171,7 @@ try:
generate_dockerfile("fedora", "fedora-40")
generate_dockerfile("opensuse-leap", "opensuse-leap-15")
generate_dockerfile("ubuntu2204", "ubuntu-2204",
trailer="".join(ubuntu2204_bindgen_extras))
trailer="".join(ubuntu2204_rust_extras))
#
# Non-fatal Rust-enabled build