Instructions how to compile Iridium.
Switch branches/tags
Nothing to show
Latest commit 95c5afa Apr 24, 2017 @jengelh jengelh build: nodejs is a requirement
nodejs is listed in DEPS and `gclient runhooks` downloads a copy of
it; removing it from DEPS means it will need to be present in the
system instead.
Permalink
Failed to load latest commit information.
.gitignore Initial write up of development howto on Linux. Jun 2, 2015
README.md build: nodejs is a requirement Apr 24, 2017

README.md

HOWTO compile Iridium on Linux

See also https://code.google.com/p/chromium/wiki/LinuxBuildInstructions and https://code.google.com/p/chromium/wiki/LinuxFasterBuilds

Clone iridium-browser-dev

We use a clone of the iridium-browser-dev repository as our base for developing Iridium.

git clone https://github.com/iridium-browser/iridium-browser-dev.git

Google depot tools

Make sure to have the depot tools from Google in your path.

Configure Iridium development

You need a base directory for your Iridium development. You can use the iridium-browser-dev directory from above. For all the following commands, make sure you are in that directory.

gclient config --name=src "git+https://git.iridiumbrowser.de/git/iridium-browser"

This creates the .gclient configuration file so that you can use the depot tools with Iridium.

Sync Iridium source

The Iridium source and all dependencies are managed by gclient. This will take a while when you do it for the first time. You should have around 30 GB disk space available to do Iridium development.

gclient sync --with_branch_heads --nohooks

This creates a new directory called src.

Install build dependencies

Building requires various packages installed on your system.

bison brlapi-devel curl dejavu-fonts elfutils ffmpeg-devel flex gcc-c++ git-core git-svn gperf krb5-devel lksctp-tools-devel lsb-release mozilla-nspr-devel mozilla-nss-devel nodejs openbox pam-devel patch perl perl-libwww-perl pkg-config pkgconfig(alsa) pkgconfig(atk) pkgconfig(bluez) pkgconfig(gconf-2.0) pkgconfig(gl) pkgconfig(glib-2.0) pkgconfig(gnome-keyring-1) pkgconfig(gtk+-2.0) pkgconfig(gtk+-3.0) pkgconfig(libavcodec) pkgconfig(libavdevice) pkgconfig(libavfilter) pkgconfig(libavformat) pkgconfig(libavresample) pkgconfig(libavutil) pkgconfig(libdrm) pkgconfig(libelf) pkgconfig(libffi) pkgconfig(libpci) pkgconfig(libpostproc) pkgconfig(libpulse) pkgconfig(libswresample) pkgconfig(libswscale) pkgconfig(libxslt) pkgconfig(openssl) pkgconfig(pulseaudio) pkgconfig(speech-dispatcher) pkgconfig(sqlite3) pkgconfig(udev) pkgconfig(xkbcommon) pkgconfig(xscrnsaver) pkgconfig(xt) pkgconfig(xtst) python python-crypto python-devel python-numpy python-opencv python-openssl python-psutil python-yaml python3-CherryPy rpm ruby subversion wdiff xcompmgr zip (+texlive-ipa-fonts maybe)

There is an installation helper script (src/build/install-build-deps.sh), but its scope is very limited and only works for x86/x86_64 systems that use both apt-get and the Debian package names.

Prepare building

After you have the build dependencies and source, some third party packages need to be prepared. This happens by running the gclient hooks.

gclient runhooks

(This downloads toolchains and buildroots from google and this will be deactivated soon enough…)

A symlink may need to be set for nodejs if DEPS did not specify a download for node.

src/third_party/node/linux/node-linux-x64/bin/node -> /usr/bin/node

Build

You are now ready to build. Ninja is managing the build process. It will only compile what is required and detects changes automatically. This produces a chrome binary at src/out/Release/chrome, which is the Iridium program.

ninja -C src/out/Release chrome chrome_sandbox

Install sandbox

To run Iridium, the sandbox needs to be set up. On Linux, see here for details. Installing the sandbox requires sudo permission on your machine.

BUILDTYPE=Release src/build/update-linux-sandbox.sh

Start it

Whenever you start Iridium, it needs to know the location of the sandbox. It is conveyed by an environment variable. You can add this to your .bashrc, too.

CHROME_DEVEL_SANDBOX=/usr/local/sbin/chrome-devel-sandbox src/out/Release/chrome

Develop

Make your changes and rebuild. To pull in new changes, go to the src directory and run git pull (switch to a branch) and after that, run gclient sync in your base directory again, to make sure third party packages are updated.

In general, development for Iridium is the same as for Chromium. Thus, if you are familiar with that, you are ready to go.

Use a temporary profile

Sometimes, it is useful to use a temporary profile.

CHROME_DEVEL_SANDBOX=/usr/local/sbin/chrome-devel-sandbox src/out/Release/chrome --user-data-dir=/tmp/iridium-temp-profile

Updating

The Iridum source master branch is constantly rebased onto the Chromium upstream. Therefore, to update, you need to hard-reset the src directory to origin/master before running gclient.

cd src
git fetch
git reset --hard origin/master
cd ..
gclient sync --with_branch_heads --nohooks