OSSystems / meta-browser

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

chromium: Enable Rust #782

Closed MaxIhlenfeldt closed 5 months ago

MaxIhlenfeldt commented 5 months ago

This adds a dependency on OE's Rust recipe, as well as all the necessary changes to make Chromium successfully use that toolchain.

This change will also mean we don't support any Yocto release older than kirkstone, as that is the first release with Rust in OE that isn't EOL yet. Most notably, we will drop support for dunfell.

MaxIhlenfeldt commented 5 months ago

Some comments:

rwmacleod commented 5 months ago

@MaxIhlenfeldt These days I'm mostly involved in Rust in trying to help @sundeep-kokkonda and @Yashinde145 so I've mentioned this thread to them and I see that Sundeep cloned meta-browser so he may reply to your question.

Also, for kirkstone, @g-scott-murray mentioned today that he is working on an update to (1.70?) of the rust mixin layer and that they are interested in chromium for AGL as you might already know.

nrpt-m commented 5 months ago

Some comments:

  • @nrpt-m as always, testing would be greatly appreciated! As discussed, this patch will mean we don't support dunfell any more. Also, please use https://git.yoctoproject.org/meta-lts-mixins/log/?h=kirkstone/rust-1.68 for kirkstone. I suspect the build will still fail even with that mixin because the Rust version is too old; but we should confirm it before adding a mixin with a newer version.

@MaxIhlenfeldt , Have successfully compiled the current chromium-120.0.6099.224 version after applying the patches mentioned in this PR. Have used poky/kirkstone source and all other required layers in kirkstone branch along with this https://git.yoctoproject.org/meta-lts-mixins/log/?h=kirkstone/rust-1.68 layer.

Have attached the console.log file as well. console-latest.log

MaxIhlenfeldt commented 5 months ago

Great to hear it works with the 1.68 mixin on kirkstone already!

MaxIhlenfeldt commented 5 months ago

One note, as Rust is a hard requirement for Chromium 121, it'd be easiest to have this PR merged before I start working on the update. I'd also like to do a separate PR that removes all dunfell-specific patches first. But if it takes too long to merge this, I can start working on the update already.

MaxIhlenfeldt commented 5 months ago

The toolchain_supports_rust_thin_lto patch has been accepted upstream as https://crrev.com/c/5233602, so I moved the patch file to files/backports and updated its Upstream-Status.

MaxIhlenfeldt commented 5 months ago

@kraj @rakuco gentle ping as merging this before starting to work on the (already released) 121 update would be best.

rakuco commented 5 months ago

This change will also mean we don't support any Yocto release older than kirkstone, as that is the first release with Rust in OE that isn't EOL yet. Most notably, we will drop support for dunfell.

@otavio @kraj @MaxIhlenfeldt we'd normally create a "dunfell" branch at the commit ea731e8d4fd8a0b40448ea286b2c92824ee591cc; I wonder if it makes sense given dunfell as a whole is going EoL in just a few months.

otavio commented 5 months ago

I am not opposed as this is the last working version.

rakuco commented 5 months ago

I am not opposed as this is the last working version.

Done!