Skip to content

reclient

How to: Build Chromium with Reclient

It is official: Goma is no longer supported by Google, and all Chromium and AOSP builds must use Reclient for remote execution and caching.

Reclient is a build system plugin providing remote execution and remote caching capabilities to existing build systems that do not natively support them -- such as Ninja, the build system used to build Chromium. See my last post, Goma is Gone — Put Everything Into Reclient! for an overview of Reclient architecture and some insights into the migration.

In this post we delve into the technical details of how to build Chromium with Reclient on a remote cluster with Linux workers.

Secure Builds with Credential Helpers

Secure and reproducible builds are something we'd all like, and something many of us work on regularly.

One area that is frequently overlooked in the topic is how to securely provide credentials for external services used during a build. Systems often fall back to insecure methods like passing them on the command-line or storing them in plaintext on disk.

In this post, we will provide an overview of common authentication mechanisms and why they should not be considered secure, and then introduce Credential Helpers and how they do provide secure builds.

Goma is Gone — Put Everything Into Reclient!

On September 7th, Google officially announced the deprecation of the Goma remote execution platform used to accelerate Chromium builds. Chromium is migrating to Reclient, a more modern tool compatible with the Remote Execution API (RE-API) used by Bazel, Buck2, recc, and other tools.

We are writing to inform you that we plan to delete support for Goma in Chromium builds around the beginning of 2024. We will also stop maintaining the goma client and server.

If you use Goma to build a Chromium browser, this may seem like bad news — and it's true that it may cause you some disruption in the short term. However in the longer term, the benefits of switching to Reclient vastly outweigh the costs. This transition has been in the works for a long time, and the deprecation notice was only sent out after Reclient has been proven to work smoothly, with minimal client-side migration requirements.