Compiling Chromium -- Will it finish? Will it work?

Not_OlesNot_Oles Hosting ProviderContent Writer
edited January 23 in Technical

Last month I had a lot of fun compiling TWM Window Manager!

I went on to try to compile all of the X Window System. I got through all of the libraries; there are quite a few:

[Not_Oles@polonium lib]$ ls -1 | wc -l
345
[Not_Oles@polonium lib]$ 

Then I hit an error:

==  Processing:  "mesa/mesa"
==        configuration options:   
ninja: Entering directory `builddir'
ninja: error: loading 'build.ninja': No such file or directory
build.sh: "ninja -C builddir" failed on mesa/mesa
build.sh: error processing:  "mesa/mesa"
[Not_Oles@polonium src]$ 

This error led to some ~reading~ quick skimming about mesa and about ninja.

Loved ninja-build.org website's simple code! <3

Before returning to X I decided to try building Chromium, because I read that Chromium and Android both use ninja. The Chromium build instructions are here.

Right now I seem to be about 27621/57968, uh, maybe a little less than half-way through the build.

[27621/57968] CXX obj/chrome/browser/feature_gu...ons/public/feature_notification_guide_service.o

Here's what top looked like awhile back:

Here's what the build terminal wondow looks like right now:

I wonder if the build will finish successfully!?

Apparently Chrome Remote Desktop on my Chromebook might be able to run the Chromium build remotely.

If somebody here wants to hop on, help, and teach me, that would be great! There is excess server capacity available.

Hope you guys also enjoy a very fun day! :) Best wishes! :)

I hope everyone gets the servers they want!

Comments

  • Not_OlesNot_Oles Hosting ProviderContent Writer

    Still going!

    [43617/57968] CXX obj/extensions/browser/browser_sources/extension_prefs.o
    

    I hope everyone gets the servers they want!

  • What cpu you got?

    Thanked by (1)Not_Oles
  • Not_OlesNot_Oles Hosting ProviderContent Writer

    This server has Xeon E-2276G.

    Right now:

    [51607/57968] CXX obj/third_party/blink/renderer/core/core/option_list.o
    

    I hope everyone gets the servers they want!

  • Not_OlesNot_Oles Hosting ProviderContent Writer
    edited January 24
    [Not_Oles@polonium src]$ time gn gen out/Default
    Done. Made 19029 targets from 3626 files in 2644ms
    
    real    0m2.742s
    user    0m10.187s
    sys     0m2.200s
    [Not_Oles@polonium src]$ time autoninja -C out/Default chrome
    ninja: Entering directory `out/Default'
    [57968/57968] LINK ./chrome
    
    real    249m21.723s
    user    2786m50.197s
    sys     176m24.382s
    [Not_Oles@polonium src]$ echo $?
    0
    [Not_Oles@polonium src]$ ls -l out/Default/chrome
    -rwxr-xr-x. 1 Not_Oles Not_Oles 1262954248 Jan 24 01:45 out/Default/chrome
    [Not_Oles@polonium src]$ ldd out/Default/chrome | wc -l
    518
    [Not_Oles@polonium src]$ 
    

    I hope everyone gets the servers they want!

  • It reminds me of the good old days when people were compiling software precisely for a specific system.

    Thanked by (1)Not_Oles
  • @root said:
    It reminds me of the good old days when people were compiling software precisely for a specific system.

    If you develop for microcontrollers you compile software precisely for a specific system.

    Thanked by (4)Not_Oles bdl root yoursunny

    The all seeing eye sees everything...

  • Not_OlesNot_Oles Hosting ProviderContent Writer
    edited January 24

    @root said: old days

    Besides those 518 linked libraries, I also didn't realize how many files the Chromium build tools and sources have! Now, having done the compile, I get to look around at the tools and the sources.

    [Not_Oles@polonium ~]$ ls -1 depot_tools/ | wc -l
    238
    [Not_Oles@polonium ~]$ ls -1 chromium/src | wc -l
    72
    [Not_Oles@polonium ~]$
    
    [Not_Oles@polonium chromium]$ pwd
    /home/Not_Oles/chromium
    [Not_Oles@polonium chromium]$ ls -1R src | wc -l
    1412898
    [Not_Oles@polonium chromium]$ 
    

    I was gonna post the full ls outputs, but they are too much.

    Besides all the other stuff, I get to look at the files related to ninja.

    [Not_Oles@polonium ~]$ ls -1R depot_tools/ninja*
    depot_tools/ninja
    depot_tools/ninja.bat
    depot_tools/ninjalog.README.md
    depot_tools/ninjalog_uploader.py
    depot_tools/ninjalog_uploader_wrapper.py
    depot_tools/ninja.py
    depot_tools/ninja_reclient.py
    [Not_Oles@polonium ~]$ 
    

    So now we have ninja to replace make, and 57968+ steps to produce the executable.

    Like @root, I loved the old days!

    Thanked by (1)root

    I hope everyone gets the servers they want!

  • last time I compiled it out of curiousity, i uses these script on top of debian stable

    https://github.com/Gyuyoung/ChromiumBuild
    https://github.com/wchen342/ungoogled-chromium-building-scripts

    there are little to no challenge if you don't need anything specific to turn on / off, or smuggling your patches.
    it took long time, that's it

    Thanked by (1)Not_Oles

    Fuck this 24/7 internet spew of trivia and celebrity bullshit.

  • Ok, now build PixelOS for my device.

    Thanked by (2)yoursunny Not_Oles

    youtube.com/watch?v=k1BneeJTDcU

  • Not_OlesNot_Oles Hosting ProviderContent Writer
    edited January 25

    Looks like Chromium has a friendly introduction to the sources.

    It's easy to look at the code online.

    But, as an old guy, I like cd. :) Note, as compared with the above screenshot of the online display, a few additional files, those with capital letters in their names, perhaps generated from the build. There are quite a few dot files too, but, maybe, for the time being, we can be quiet about the dot files. Ssshh! :)

    [Not_Oles@polonium ~ ]$ cd chromium/src; ls
    android_webview      components     ios                      README.md
    apps                 content        ios_internal             remoting
    ash                  courgette      ipc                      rlz
    ATL_OWNERS           crypto         LICENSE                  sandbox
    AUTHORS              dbus           LICENSE.chromium_os      services
    base                 DEPS           media                    signing_keys
    build                device         mojo                     skia
    BUILD.gn             DIR_METADATA   native_client            sql
    build_overrides      docs           native_client_sdk        storage
    buildtools           extensions     net                      styleguide
    cc                   fuchsia_web    out                      testing
    chrome               gin            OWNERS                   third_party
    chromecast           google_apis    pdf                      tools
    chromeos             google_update  ppapi                    ui
    clank                gpu            PRESUBMIT.py             url
    codelabs             headless       PRESUBMIT_test_mocks.py  v8
    CODE_OF_CONDUCT.md   infra          PRESUBMIT_test.py        WATCHLISTS
    codereview.settings  internal       printing                 webkit
    [Not_Oles@polonium src]$ 
    

    I'm not going to invest much time in chromium/src right now, because I want to head over to look at ninja. Probably chromium has documentation about how ninja is involved, but I haven't found that documentation yet.

    [Not_Oles@polonium ~]$ cd depot_tools/; ls -1 ninja*
    ninja
    ninja.bat
    ninjalog.README.md
    ninjalog_uploader.py
    ninjalog_uploader_wrapper.py
    ninja.py
    ninja_reclient.py
    [Not_Oles@polonium depot_tools]$ 
    

    I hope everyone gets the servers they want!

  • Not_OlesNot_Oles Hosting ProviderContent Writer
    edited January 25

    @Otus9051 said:
    Ok, now build PixelOS for my device.

    Before we consider building PixelOS, how about if you start a new LES thread by writing an educational post introducing people to PixelOS, its alternatives, reasons for selecting one or another of the alternatives, and how to use PixelOS? Maybe you could include some great screenshots and also link to other sites with good information about PixelOS? Maybe you could explain some of the differences between PixelOS and what comes natively installed on a Google Pixel?

    I don't know anything about PixelOS. So I would be interested. Maybe others also might be interested.

    Best wishes from New York City and Sonora, MX! πŸ—½πŸ‡ΊπŸ‡ΈπŸ‡²πŸ‡½πŸœοΈ

    Thanked by (1)yoursunny

    I hope everyone gets the servers they want!

  • @Not_Oles said:

    @Otus9051 said:
    Ok, now build PixelOS for my device.

    Before we consider building PixelOS, how about if you start a new LES thread by writing an educational post introducing people to PixelOS, its alternatives, reasons for selecting one or another of the alternatives, and how to use PixelOS? Maybe you could include some great screenshots and also link to other sites with good information about PixelOS? Maybe you could explain some of the differences between PixelOS and what comes natively installed on a Google Pixel?

    I don't know anything about PixelOS. So I would be interested. Maybe others also might be interested.

    Best wishes from New York City and Sonora, MX! πŸ—½πŸ‡ΊπŸ‡ΈπŸ‡²πŸ‡½πŸœοΈ

    Could do that, I'll do it after Saturday maybe.

    Thanked by (1)Not_Oles

    youtube.com/watch?v=k1BneeJTDcU

  • If you like compiling software, take advantage of your new FreeBSD 14 installation and check out /usr/ports!

    There you can configure and compile pretty much everything:

    https://docs.freebsd.org/en/books/handbook/ports/#ports-using

    Thanked by (1)Not_Oles
  • Not_OlesNot_Oles Hosting ProviderContent Writer

    @Crab said:
    If you like compiling software, take advantage of your new FreeBSD 14 installation and check out /usr/ports!

    There you can configure and compile pretty much everything:

    https://docs.freebsd.org/en/books/handbook/ports/#ports-using

    Thanks @Crab! :)

    Please see also:

    https://wiki.freebsd.org/Chromium

    https://www.freshports.org/www/chromium/

    I hope everyone gets the servers they want!

Sign In or Register to comment.