OSSystems / meta-browser

OpenEmbedded/Yocto BSP layer for Web Browsers
MIT License
181 stars 187 forks source link

Decide what to do regarding upstream requiring a quite recent version of Rust #807

Closed MaxIhlenfeldt closed 2 months ago

MaxIhlenfeldt commented 2 months ago

I've asked on the Chromium Slack if there's any MSRV (minimum supported Rust version) policy for Chromium, and this was the response from danakj@:

we don't [have a MSRV policy] we use nightly basically just like we use clang nightly, and they need to follow each other that said we kinda have a weird MSClangV for cronet right now but it's a big source of pain for us. Since we build with latest Rust it would be a pain for rust too because we'd have to run some extra bots on older Rust and it would not be in folks' workflows and cause reverts So, I would argue to avoid a MSRV for Chromium since our CI will track TOT (and dev environments)

As I see it, we'll either have to:

  1. start fixing build errors because of old compilers again (like we had to do for clang 12/14/15),
  2. aggressively drop support for non-LTS Yocto releases with too old Rust versions and ensure that meta-lts-mixins always has a recent enough version of Rust for all LTS releases, or
  3. switch to meta-rust-bin, which -- at least currently -- has recipes for recent Rust versions for all the Yocto releases we support.

As the person who wrote way too many patches to ensure compilability with clang < 16, I'd say the first option is not viable. My personal preference would be (2), because switching to meta-rust-bin would probably require some changes to our Rust build setup, and I'd like to avoid re-working that again.

otavio commented 2 months ago

I support option 2 because it reduces the maintenance burden and encourages people to upgrade to newer releases, including LTS.

MaxIhlenfeldt commented 2 months ago

Given that there hasn't been any opposition to going with (2), I'd say we can go ahead with that. This hasn't much immediate effect - kirkstone is still LTS, but that's blocked on having a recent version of clang; nanbield isn't LTS and will go EOL this month; and scarthgap is LTS but has a recent enough version of Rust. There shouldn't be any problems until scarthgap's Rust version gets too old for Chromium, which shouldn't happen for a while.