There has been a significant refactor to this code done in upstream to
make it more python-like. This change corrects our patches to adjust to
the new expectations.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d80c7ae95cd37bbdc1debc9fad8aab9de24f9847
commit d80c7ae95cd37bbdc1debc9fad8aab9de24f9847
Author: Tom Anderson <thomasanderson@chromium.org>
Date: Thu Dec 11 17:03:39 2025 -0800
Reland "Refactor chrome/installer/linux"
This is a reland of commit db3d1a330291474e4d7b5001f89e0440e297f0df
The reland dupes some code that shouldn't be shared by //remoting.
Original change's description:
> Refactor chrome/installer/linux
>
> No behavior changes. The built packages are bit-for-bit identical. The
> original Python port of the shell scripts was a direct, literal
> translation. This change aims to make the port more Pythonic.
>
> - Declarative Artifacts: Replaces the imperative file staging logic
> with a declarative list of Artifact objects. Each artifact defines
> its source, destination, type (binary, resource, icon, etc.), and
> permissions.
> - InstallerConfig: Replaces the unstructured context dictionary
> with a typed InstallerConfig dataclass. This centralizes
> configuration, parsed arguments, and derived variables.
> - Templating Engine: Switches from manual string replacement to
> Python's built-in string.Template. This necessitates updating all
> template files (deb, rpm, and common) to use the @@VARIABLE syntax
> (dropping the trailing @@) and accessing attributes directly from
> the config object (e.g., @@architecture instead of
> @@ARCHITECTURE@@).
> - Type Hinting: Adds type annotations throughout installer.py,
> debian/build.py, and rpm/build.py.
> - Modernization: Uses pathlib more extensively, adds a
> StagingContext manager for directory cleanup, and defines
> permission constants.
>
> Change-Id: Ib4954f5095790949f4d4c79de7af962141d8d5e5
> Bug: None
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7214329
> Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> Commit-Queue: Lei Zhang <thestig@chromium.org>
> Reviewed-by: Lei Zhang <thestig@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1557645}
Bug: None
Change-Id: I8ec3abd52f56c34ac48c342e6f795276fbb0c92d
Cq-Include-Trybots: luci.chrome.try:linux64-rel-ready
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7253206
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Lambros Lambrou <lambroslambrou@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1557781}