Ubuntu – How to build `ungoogled-chromium` from source on Ubuntu 18.04


I've put in about an hour at this point, and I'm starting to feel a bit dead inside.

I started by downloading ungoogled-chromium version 71.0.3578.98-2 from GitHub. I extracted the tar.gz file into my home folder. Then, using the instructions from the "Any Linux Distribution" section of the build instructions. I followed the instructions to the point of adding the LLVM APT repo. I added the specified lines for Bionic (18.04) to my /etc/apt/sources.list file, retrieved the key with:

wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
sudo apt-get update

This output these errors which look like this:

E: The repository 'https:/dl.winehq.org/wine-builds/ubuntu bionic Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: http://apt.llvm.org/bionic llvm-toolchain-bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 15CF4D18AF4F7421

I then, (though I knew it wouldn't work), ran:

sudo apt-get install clang-8 lld-8 llvm-8-dev python python3 ninja-build

and all of the LLVM packages were not able to be installed.

This is my first experience building from source, so I know inevitably made some obnoxious novice mistake.

Best Answer

Firstly, if you don't want to build from source they provide binaries already built for Ubuntu 18.04:

Instructions for building are available from:

This specifies that you can build LLVM 7 and don't need to install LLVM 8 to build for Ubuntu Bionic (18.04)

Building should be as simple as:

sudo apt install packaging-dev python3 ninja-build

# Run from inside the clone of the repository
mkdir -p build/src

./get_package.py PACKAGE_TYPE_HERE build/src/debian
cd build/src

# Use dpkg-checkbuilddeps (from dpkg-dev) or mk-build-deps (from devscripts) to check for additional packages.
# If necessary, change the dependencies in debian/control to accommodate your environment.
# If necessary, modify AR, NM, CC, and CXX variables in debian/rules
debian/rules setup-local-src
dpkg-buildpackage -b -uc
Related Question