nextest-rs / nextest

A next-generation test runner for Rust.
https://nexte.st
Apache License 2.0
2.2k stars 97 forks source link

Latest Nextest can't build on RISC-V because the ring dependency isn't supported there #820

Closed tommythorn closed 1 year ago

tommythorn commented 1 year ago

While this might be considered a ring issue, the impact is on nextest. Note, I have nextest v0.9.14 which installed without issues.

sunshowers commented 1 year ago

Thanks for the report! Looks like https://github.com/briansmith/ring/issues/1182 is the issue.

  1. Could you paste the full output of rustc -Vv?
  2. Does your platform have OpenSSL available? We use ring as part of rustls, and we could switch over to OpenSSL if that's more reasonable on your platform.
  3. Can you try building nextest with cargo build --release -p cargo-nextest --no-default-features --features default-no-update? (or cargo install cargo-nextest --no-default-features --features default-no-update).
tommythorn commented 1 year ago
  1. rustc -Vv:
    rustc 1.67.1 (d5a82bbd2 2023-02-07)
    binary: rustc
    commit-hash: d5a82bbd26e1ad8b7401f6a718a9c57c96905483
    commit-date: 2023-02-07
    host: riscv64gc-unknown-linux-gnu
    release: 1.67.1
    LLVM version: 15.0.6
  2. This was on Arch Linux, but all Linux distributions for RISC-V has openssl.
    $ openssl version
    OpenSSL 3.0.8 7 Feb 2023 (Library: OpenSSL 3.0.8 7 Feb 2023)
  3. cargo build --release -p cargo-nextest --no-default-features --features default-no-update succeeded after 18 min, producing a 20 MiB executable.
sunshowers commented 1 year ago

I just pushed 02abe2d6969110a1a8fbdc1cad636b2c3c4103da which is an attempt to fix this. Unfortunately I couldn't test it locally because my attempt to use cross to do a build failed (cross and OpenSSL don't go well together, and the suggestion to install OpenSSL from apt failed because Ubuntu 18.04 doesn't have binary packages available for riscv64).

Could you update your local repository and try cargo build --release -p cargo-nextest locally?

tommythorn commented 1 year ago

Thank you. Yes, that builds fine (main had one additional commit so I built that). I don't know if I should close the bug, but AFAICT it's a resolved issue.

sunshowers commented 1 year ago

Thanks! Going to get a release out this weekend.

tommythorn commented 1 year ago

Did this regress? My cargo install-update -a just failed:

Package         Installed  Latest   Needs update                                                                        
cargo-nextest   v0.9.14    v0.9.49  Yes                                                                                 
...
Updating cargo-nextest                                                                                                  
    Updating crates.io index                                                                                            
  Installing cargo-nextest v0.9.49                                                                                      
  Downloaded semver v1.0.17                                                                                             
  Downloaded quote v1.0.24                                                                                              
  Downloaded proc-macro2 v1.0.52                                                                                        
  Downloaded chrono v0.4.24                                                                                             
  Downloaded 4 crates (292.0 KB) in 2.13s                                                                               
   Compiling proc-macro2 v1.0.52                                                                                        
   Compiling libc v0.2.140                                                                                              
   Compiling quote v1.0.24                                                                                              
   Compiling unicode-ident v1.0.8                                                                                       
...
   Compiling ring v0.16.20
   Compiling bytes v1.4.0
   Compiling hashbrown v0.12.3
error: failed to run custom build command for `ring v0.16.20`

Caused by:
  process didn't exit successfully: `/tmp/cargo-installgWrkyo/release/build/ring-eb7acf3e4aed426b/build-script-build` (e
xit status: 101)
  --- stderr
  thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /home/tommy/.cargo.riscv64-linux/registry/src
/github.com-1ecc6299db9ec823/ring-0.16.20/build.rs:358:10
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: failed to compile `cargo-nextest v0.9.49`, intermediate artifacts can be found at `/tmp/cargo-installgWrkyo
sunshowers commented 1 year ago

Hadn't gotten around to doing the release yesterday -- just released cargo-nextest 0.9.50 as an update.