Building GIMP for Linux

The main GIMP building instructions are at Building GIMP .

This page is for Linux-specific additions to that page.

Supported Distributions

GIMP can be installed on pretty much any GNU/Linux distribution out there. For the stable branch in particular, we take great care at not bumping the minimum requirements too often. We also try not to bump build tools (meson, autotools…) without a good reason.

We allow a bit more flexibility for optional dependencies.

For the development branch, requirements might be higher than the stable branch, though we also try to avoid bumping without very good reasons (and will try to find ways to use new features while still keeping an old requirement, for instance using macros to test the dependency version).

A base rule is that we try to never bump a dependency if the minimum version is not already at least in Debian testing which acts as our base reference for the development branch of being “reasonably recent yet not too recent”.

As a general advice, software developers should anyway use distributions providing reasonably recent packages if you don’t want to have to compile yourself too many dependencies. Ideally, in GIMP case, you should only have to build babl, GEGL and GIMP. All the rest could come from the package manager.

Distributions commonly used by core GIMP developers are: Debian testing, Debian unstable and Fedora. Some passing contributors have also been using Arch or Gentoo. Other distributions with longer support, and especially LTS versions, can be quite unsuited for software development; as the installed version grow older, you end up having to build yourself more and more dependencies. Some people contribute this way anyway, so in the end, it’s up to everyone and there is no reason recent GIMP cannot build and run on any distribution (you’ll just have to put more work sometimes).

Dependencies

GIMP depends on many packages in addition to babl and gegl.

Build options affect which packages are required.

The requirements may change for each release, so the authoritative file should always be INSTALL (equivalent INSTALL for the development version), within the source repository instead. In unexpected cases where even INSTALL is missing information, the build system is the most authoritative source.

Therefore this build tutorial is to be taken as a generic build helper or guidelines. If something does not work with the given commands, you are expected to try and understand error messages, because it will never be possible to keep this tutorial perfectly up-to-date with every possible distributions and environments out there.

This page lists dependencies for some linux distributions, on certain dates, with all build options enabled.

Ubuntu 19.10

Working in October 2019.

sudo apt install \
    libtool intltool \
    meson \
    asciidoc \
    exiv2 libgexiv2-dev \
    gjs \
    gtk-3-examples \
    gtk-doc-tools \
    jasper \
    libaa1-dev \
    libappstream-glib-dev \
    libarchive-dev \
    libavcodec-dev libavformat-dev libavutil-dev \
    libbz2-dev \
    libgs-dev \
    libgtk-3-dev libgtk2.0-dev gobject-introspection \
    libgirepository1.0-dev \
    libgudev-1.0-dev \
    libheif-dev \
    libjson-c-dev libjson-glib-dev \
    liblcms2-dev \
    liblensfun-dev \
    libmng-dev \
    libopenexr-dev \
    libjpeg-dev libopenjp2-7-dev \
    libpoppler-glib-dev \
    libraw-dev \
    librsvg2-bin librsvg2-dev \
    libsdl2-dev \
    libspiro-dev \
    libswscale-dev \
    libtiff-dev \
    libumfpack5 \
    libv4l-dev \
    libwebkit2gtk-4.0-dev \
    libwebp-dev \
    luajit \
    python-gi-dev python3-venv python3-wheel \
    ruby \
    w3m \
    xsltproc

Added in 2020, when building optional vala language plugins, the vala compiler tool: valac

Since Ubuntu 20.04 focal, the tool gtk-encode-symbolic-svg, an executable binary, has moved from package gtk-3-examples to package libgtk-3-bin.

Since 2021, when building using the clang compiler, the OpenMP library i.e. -lomp: libomp-dev

Debian testing

Since our CI build uses Debian testing, and that we try to keep this build as full-featured and up-to-date as possible (because it is here to warn us of any new issue), if you use Debian testing, it might be a very good idea to look at the .gitlab-ci.yml file in our repository.

In particular, look at the build-image job for most dependencies installed from the package manager and at deps-debian job for the dependencies we build ourselves. Copying these commands might be all there is to do for you.

Other Debian flavors and derivatives

If your distribution is Debian-based, you may also find the below trick useful.

For Debian and derivative distributions (Ubuntu, Mint…), a good start would be to install the build-essential package. There exists also a special command which would install all the packages necessary to build the GIMP package. It gets you mostly there in a single command:

sudo apt build-dep gimp

You may get an error about incomplete sources.list:

$ sudo apt build-dep gimp
Reading package lists... Done
E: You must put some 'deb-src' URIs in your sources.list

If this happens, this forum thread gives a few hints on how to properly set your system with CLI and GUI alternative methods: https://askubuntu.com/a/857433

Fedora

Fedora has a similar command as Debian which will install all packages necessary to build the GIMP package. It gets you mostly there in a single command:

sudo dnf builddep gimp