This repository contains a framework for building and distributing RPMs and tarballs for Chromium on ppc64le. The repository provides two flavors of Chromium, one that is largely the same as upstream's, and another containing the Ungoogled Chromium patchset, which removes dependencies on Google web services. It also features some tweaks to enhance privacy, control, and transparency (almost all of which require manual activation or enabling).
The easiest way to install is to add the repository, which is currently only available for Fedora and RHEL/CentOS.
sudo dnf config-manager --add-repo=https://gitlab.com/chromium-ppc64le/chromium-ppc64le/raw/master/chromium-ppc64le.repo
Alternatively, you can download the
chromium-ppc64le.repo
file from this repository and place it in /etc/yum.repos.d
.
After adding the repository, run:
sudo dnf install chromium-browser-stable
sudo dnf install ungoogled-chromium-browser-stable
In order to allow parallel installation of both versions of Chromium, This
repository contains a patch to change the default location of the Ungoogled
Chromium profile from ~/.config/chromium
to ~/.config/ungoogled-chromium
.
To use your existing profile with Ungoogled Chromium, simply run:
mv ~/.config/chromium ~/.config/ungoogled-chromium
Version | Standard Chromium | Ungoogled Chromium | ||
---|---|---|---|---|
v84.0.4147.89-1 | rpm | .tar.xz | rpm | .tar.xz |
Installing on other distributions that use RPM, such as openSUSE, should be possible, but it has not been tested.
sudo rpm -Uvh https://github.com/chromium-ppc64le/chromium-ppc64le/releases/download/v84.0.4147.89-1/chromium-browser-stable-84.0.4147.89-1.ppc64le.rpm
sudo rpm -Uvh https://github.com/chromium-ppc64le/chromium-ppc64le/releases/download/v84.0.4147.89-1/ungoogled-chromium-browser-stable-84.0.4147.89-1.ppc64le.rpm
Just download the latest standard build or the latest Ungoogled Chromium build and extract it.
git clone --recurse-submodules https://gitlab.com/chromium-ppc64le/chromium-ppc64le
cd chromium-ppc64le
make dev
This will build a container using podman
, open a shell
in the container, and bind mount the container's working directory to
a build-root/
directory in the current directory. From the container, run:
make chromium -j16
or, for Ungoogled Chromium:
make ungoogled-chromium -j16
To build both flavors, run:
make both-chromium -j16
Note that with the configuration in this repo, the build uses 32GB of RAM at its peak, about 100GB of disk space, 16 CPU threads for most of the build, and at certain points in the build 30 threads. Resource requirements can be reduced by altering the below environment variables.
Certain environment variables control aspects of the build and are listed below along with their default values.
# Number of threads to use for multithreaded operations in the build. The build
# uses `ninja` for building and enables multithreaded compression. These do not
# respect the -j thread passed to `make`.
NUM_THREADS=16
# Whether to build using Link-Time Optimization. This increases RAM requirements
# for the build.
USE_LTO=true
# Number of link jobs to do concurrently. Each concurrent job uses about 16GB
# of RAM and 8 threads. These may be in addition to the threads specified by the
# NUM_THREADS environment variable, so having 2 concurrent link jobs will cause
# the build to use a maximum of 30 threads, as in this formula:
# (NUM_THREADS - CONCURRENT_LINKS) + (8 * CONCURRENT_LINKS).
CONCURRENT_LINKS=2
# Size of the `ccache` cache. To disable `ccache`, set the CCACHE_DISABLE
# environment variable
CCACHE_MAXSIZE=25G
- Patches to enable building on PPC64LE
- Patch to enable RPM building for PPC64LE
- Patch to enable GPU-accelerated video decoding
- Patch to change the browser's user agent string to be the same as the official Chrome build on Linux, which helps reduce the browser's fingerprinting surface
- Patch to enable use of POWER VSX instructions in the skia rendering engine
- Link-time optimized builds
- PulseAudio integration
- Non-free codecs
The logs for the build and repo creation are available under GitLab pipelines.
Currently, the builds are not GPG signed, as signing the builds would require storage of the private key and password in an unsafe manner on GitLab's servers. Options for proper signing are currently being evaluated.
The chromium tree includes files to build packages for Debian-based systems. These haven't been built, since the maintainers can't easily test them, and the packaging files in the chromium tree seem to make more assumptions about the platform.
Most files in this repository are licensed under the Apache 2.0 license.
Patches are licensed under the license to the files they patch.
Submodules are licensed under the respective license in the repository.
Version | Standard Chromium | Ungoogled Chromium | ||
---|---|---|---|---|
v83.0.4103.116-1 | rpm | .tar.xz | rpm | .tar.xz |
v83.0.4103.97-1 | rpm | .tar.xz | rpm | .tar.xz |
v83.0.4103.61-1 | rpm | .tar.xz | rpm | .tar.xz |
v81.0.4044.138-1 | rpm | .tar.xz | rpm | .tar.xz |
v81.0.4044.129-1 | rpm | .tar.xz | rpm | .tar.xz |
v81.0.4044.122-1 | rpm | .tar.xz | rpm | .tar.xz |
v81.0.4044.113-1 | rpm | .tar.xz | rpm | .tar.xz |
v80.0.3987.163-1 | rpm | .tar.xz | rpm | .tar.xz |
v80.0.3987.162-1 | rpm | .tar.xz | rpm | .tar.xz |
v80.0.3987.149-1 | rpm | .tar.xz | rpm | .tar.xz |
v80.0.3987.132-1 | rpm | .tar.xz | rpm | .tar.xz |
v80.0.3987.122-1 | rpm | .tar.xz | rpm | .tar.xz |
v80.0.3987.116-1 | rpm | .tar.xz | rpm | .tar.xz |
v80.0.3987.100-1 | rpm | .tar.xz | rpm | .tar.xz |
v80.0.3987.87-1 | rpm | .tar.xz | rpm | .tar.xz |
v79.0.3945.130-1 | rpm | .tar.xz | rpm | .tar.xz |
v79.0.3945.117-1 | rpm | .tar.xz | rpm | .tar.xz |
v79.0.3945.88-1 | rpm | .tar.xz | rpm | .tar.xz |
v79.0.3945.79-1 | rpm | .tar.xz | rpm | .tar.xz |
v78.0.3904.108-1 | rpm | .tar.xz | rpm | .tar.xz |