This commit updates the default version of Rust installed for fuzzing to
the last nightly of Rust that used LLVM 17. The next version uses LLVM
18.1.7 which is incompatible with the fuzz infrastructure's own LLVM
which is currently 18.0.0. This is intended to update the Rust toolchain
as far as possible without causing coverage incompatibilities.
This additionally updates a few pinned projects to all use this nightly
as well. Furthermore the containers are now configured to by-default
ignore `rust-toolchain` and `rust-toolchain.toml` files which will force
this particular toolchain to be used.
Using `apt upgrade` without `-y` is problematic, because it may fail:
```
Step #17: Step 3/4 : RUN apt-get upgrade && apt-get install --yes --no-install-recommends libclang-dev pkg-config libcap-dev
Step #17: ---> Running in 4fd961f9329f
Step #17: Reading package lists...
Step #17: Building dependency tree...
Step #17: Reading state information...
Step #17: Calculating upgrade...
Step #17: The following packages will be upgraded:
Step #17: bsdutils fdisk libblkid1 libfdisk1 libmount1 libsmartcols1 libuuid1 mount
Step #17: util-linux
Step #17: 9 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Step #17: Need to get 1901 kB of archives.
Step #17: After this operation, 4096 B of additional disk space will be used.
Step #17: Do you want to continue? [Y/n] Abort.
Step #17: The command '/bin/sh -c apt-get upgrade && apt-get install --yes --no-install-recommends libclang-dev pkg-config libcap-dev' returned a non-zero code: 1
Finished Step #17
ERROR
```
Also, an `apt-get update` is needed, anyway.
Fix both issues by replacing `upgrade` with `update`.
Downgrades Rust to nightly at 28th Dec 2023. The version that is build
is:
```sh
> [2/2] RUN install_rust.sh:
0.210 + curl https://sh.rustup.rs
0.210 + sh -s -- -y --default-toolchain=nightly-2023-12-28 --profile=minimal
0.217 % Total % Received % Xferd Average Speed Time Time Time Current
0.217 Dload Upload Total Spent Left Speed
100 26495 100 26495 0 0 205k 0 --:--:-- --:--:-- --:--:-- 206k
0.348 info: downloading installer
1.603 warning: it looks like you have an existing installation of Rust at:
1.603 warning: /usr/local/bin
1.603 warning: It is recommended that rustup be the primary Rust installation.
1.603 warning: Otherwise you may have confusion unless you are careful with your PATH
1.603 warning: If you are sure that you want both rustup and your already installed Rust
1.603 warning: then please reply `y' or `yes' or set RUSTUP_INIT_SKIP_PATH_CHECK to yes
1.603 warning: or pass `-y' to ignore all ignorable checks.
1.603 error: cannot install while Rust is installed
1.603 warning: continuing (because the -y flag is set and the error is ignorable)
1.622 info: profile set to 'minimal'
1.622 info: default host triple is x86_64-unknown-linux-gnu
1.622 info: syncing channel updates for 'nightly-2023-12-28-x86_64-unknown-linux-gnu'
2.595 info: latest update on 2023-12-28, rust version 1.77.0-nightly (89e2160c4 2023-12-27)
2.595 info: downloading component 'cargo'
3.274 info: downloading component 'rust-std'
```
---------
Signed-off-by: David Korczynski <david@adalogics.com>
Crosvm was updated to follow a more standard `cargo fuzz` layout. So the
build script here can be simplified.
Also addition a few more people interested in our fuzzer results.
Tested with `presubmit.py` and `helper.py build crosvm`
crosvm fuzzing is currently running as part of ChromeOS infra, where the
project originated.
Crosvm has since become an independent project with separate
infrastructure and we would like to move fuzzing out of ChromeOS as
well.
Tested with `python3 infra/helper.py check_build crosvm`
---------
Co-authored-by: jonathanmetzman <31354670+jonathanmetzman@users.noreply.github.com>