lawliet89 / rocket_cors

Cross-origin resource sharing (CORS) for Rocket.rs applications

Home Page:https://lawliet89.github.io/rocket_cors/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Building on `stable` results in error

nathanielford opened this issue · comments

When building in a dockerfile on stable, rustdoc breaks.

The dockerfile, building a basic Rocket 5.0-rc1 app.

FROM ekidd/rust-musl-builder:latest
...
RUN rustup target add x86_64-unknown-linux-musl
...
RUN cargo build --release

The Cargo.toml contains:

[dependencies]
rocket = "0.5.0-rc.1"
rocket_cors = { git = "https://github.com/lawliet89/rocket_cors.git", branch = "master" }

And the build halts when attempting to build rocket_cors.

   Compiling rocket_cors v0.5.2 (https://github.com/lawliet89/rocket_cors.git?branch=master#a062933c)
error[E0710]: an unknown tool name found in scoped lint: `rustdoc::broken_intra_doc_links`
   --> /home/rust/.cargo/git/checkouts/rocket_cors-5d6823f67bcb0532/a062933/src/lib.rs:253:5
    |
253 |     rustdoc::broken_intra_doc_links
    |     ^^^^^^^

error: aborting due to previous error

For more information about this error, try `rustc --explain E0710`.
error: could not compile `rocket_cors`

Switching to nightly in the dockerfile works (as is probably expected) - so this is less an 'issue with things as they stand' as a 'thing that needs to be fixed for Rocket 0.5'. Notably, building outside the dockerfile (on Pop_OS/Ubuntu) works fine on stable. It may be related to this issue.

I‘m not a maintainer of this but here’s my guess.

Its probably due to the rust version of the base image, its 6 months old and runs 1.51.0 while your workstation probably runs a newer version which is needed for this.

TLDR; no bug, just an outdated version of rust being used by the base image. RUN rustup update might help, didn’t check it

I'm also seeing this:

error: failed to run custom build command for `pear_codegen v0.1.4`

Caused by:
  process didn't exit successfully: `/Users/thomas/bend/data-service/target/debug/build/pear_codegen-5da0a702cafd9dee/build-script-build` (exit status: 101)
  --- stderr
  Error: Pear requires a 'dev' or 'nightly' version of rustc.
  Installed version: 1.56.1 (2021-11-01)
  Minimum required:  1.31.0-nightly (2018-10-05)
  thread 'main' panicked at 'Aborting compilation due to incompatible compiler.', /Users/thomas/.cargo/registry/src/github.com-1ecc6299db9ec823/pear_codegen-0.1.4/build.rs:24:13
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed

Updating to the master branch build (rocket_cors = { git = "https://github.com/lawliet89/rocket_cors", branch = "master" }) resolves this but I'm seeing several other errors trying to implement the example with the stable Rocket release candidate

Now just seeing:

38 |     .attach(cors)
   |             ^^^^ the trait `Fairing` is not implemented for `Result<Cors, rocket_cors::Error>`

with:

    rocket::build()
    .register("/", catchers![internal_error])
    .mount("/", routes![index])
    .mount("/v0", routes![info, org_count, org_list, org_create])
    .attach(cors)

@thomasmost mind telling me which rocket version you are using?

Are you setting up cors something along the lines of this?

let cors = rocket_cors::CorsOptions::default().to_cors().unwrap()