OSSystems / meta-browser

OpenEmbedded/Yocto BSP layer for Web Browsers
MIT License
183 stars 189 forks source link

chromium tarball is much too big: split source? #763

Open rwmacleod opened 10 months ago

rwmacleod commented 10 months ago

@nrpt-m mentioned that with upstream adding Rust in chromium 117, the tarball is ~3 GB. Even before this, chromium-116.0.5845.187.tar.xz is 1.5 GB and 13 GB unpacked. It seemed hard to believe that all of that data would be required to build chromium. Using ncdu, the top level directories that are > 100 MiB are:

    9.7 GiB [##########] /third_party                                                                                                                                                         
  822.8 MiB [          ] /chrome
  420.8 MiB [          ] /components
  288.4 MiB [          ] /buildtools 
  199.6 MiB [          ] /tools
  126.0 MiB [          ] /ios
  110.9 MiB [          ] /net
  104.3 MiB [          ] /ui
  101.0 MiB [          ] /ash  

and the largest third-party componets are:

    1.6 GiB [##########] /llvm  
    1.5 GiB [######### ] /angle
    1.0 GiB [######    ] /swiftshader
  649.2 MiB [###       ] /dawn                                                                                                                                                                
  454.5 MiB [##        ] /devtools-frontend
  373.9 MiB [##        ] /catapult

Is it possible to use llvm and rust from YP/OE and does anyone think that it would be a good idea to look at other large directories and remove them or split them into a seperate tarball if not needed. Does anyone object to such a change assuming that it's not too painful to implement and maintain?

rakuco commented 10 months ago

The tarball publishing process upstream already creates a tarball called "chromium-lite" which removes some directories, but this list is not very up-to-date and actively maintained.

As a first step one could see if this tarball is considerably smaller than the one we use and whether one can actually build Chromium from it.

As for using LLVM and Rust from YP/OE and the rest of the suggestion: do you mean creating a tarball of our own?