Last updated March 27th due the the release of 2.10 RC1
You can find more details here: https://www.wiki.gimp.org/wiki/Hacking:Building/Linux.
I compiled GIMP for my Debian Stretch/Sid. When I originally did this – for Debian Jessie, I used an openly licensed document, therefore this document may be distributed by the same license as the original CC Attribution-Share Alike 3.0 Unported.
What to do under DEBIAN
Open a terminal window and copy line for line int the window. Press RETURN and watch. The block with all the packages are one line, the “\” tells the system to ignore the line break, so you can copy and paste it in one chunk into your terminal.
Prepare the environment
cd export PREFIX=`echo ~/gimp` export PATH=$PREFIX/bin:$PATH export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig
Install needed packages
Become superuser, update your system, install, go back to normal user.
su - apt-get update apt-get upgrade apt-get install libtool automake autoconf git-core gettext \ libglib2.0-0 libglib2.0-dev libgtk2.0-0 libgtk2.0-dev ruby \ intltool libtiff5 libtiff5-dev python-dev python-gtk2-dev \ libexif-dev libmng-dev liblcms2-dev libxpm-dev librsvg2-dev \ libwmf-dev libasound2-dev valac xsltproc openexr libexif-dev \ libexif12 libgexiv2-dev libbz2-dev gtk-doc-tools \ libjson-glib-dev libjson-c-dev build-essential exit
There are also some optional packages to help with dependencies, recently added to this are OpenJPEG, AsciiArt, GhostScript and test utils appstream and xvfb :
su - apt-get install libaa1-dev libwebkitgtk-dev \ libjavascriptcoregtk-1.0-dev libopenexr-dev \ libgs-dev libpoppler-glib-dev \ python-cairo-dev libaa1-dev libopenjp2-7-dev \ libgs-dev appstream-util xvfb exit
Don’t worry about these for a basic compile though. This should be the last time you need to become root to complete the process. You may also install one more library if you wish libjasper-dev, but you’ll have to get it from Debian Sid. See https://packages.debian.org/sid/libjasper-dev. Libjasper is not in Buster or Stretch.
Get the source
It’s now necessary to fix libmypaint at version 1.3.0, and to also get the separate brushes repository:
mkdir gimp-build cd ~/gimp-build git clone https://github.com/mypaint/libmypaint cd libmypaint git checkout v1.3.0 cd ~/gimp-build git clone https://github.com/Jehan/mypaint-brushes cd mypaint-brushes git checkout v1.3.x cd ~/gimp-build git clone git://git.gnome.org/gimp
Generate the make files, compile and install
In the autogen lines a lot of checks are done – watch for warnings and error messages!
cd babl ./autogen.sh --prefix=$PREFIX make make install cd ../gegl ./autogen.sh --prefix=$PREFIX make make install cd ../libmypaint ./autogen.sh --prefix=$PREFIX ./configure --prefix=$PREFIX --enable-gegl make make install cd ../mypaint-brushes ./autogen.sh --prefix=$PREFIX ./configure --prefix=$PREFIX make make install cd ../gimp ./autogen.sh --prefix=$PREFIX --disable-gtk-doc make make install
This gets you gimp-2.9 in the directory ~/gimp/bin . If you have error try to add any missing package and try again. Post a comment on this post if you like.
Keeping GIMP up to date
Don’t delete the source directory. Backup your directory with the working GIMP 2.9. The update can break everything in there…..
You can update easily with:
cd export PREFIX=`echo ~/gimp` export PATH=$PREFIX/bin:$PATH export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig cd gimp-build cd babl git clean -f git pull --rebase ./autogen.sh --prefix=$PREFIX make make install cd ../gegl git clean -f git pull --rebase ./autogen.sh --prefix=$PREFIX make make install cd ../libmypaint git clean -f git pull --rebase https://github.com/mypaint/libmypaint v1.3.0 ./autogen.sh --prefix=$PREFIX ./configure --prefix=$PREFIX --enable-gegl make make install cd ~/gimp-build/mypaint-brushes git clean -x -d -f git pull --rebase https://github.com/Jehan/mypaint-brushes v1.3.x ./autogen.sh --prefix=$PREFIX ./configure --prefix=$PREFIX make make install cd ../gimp git clean -f git pull --rebase ./autogen.sh --prefix=$PREFIX make make install
This is fast, because only new and changed stuff is pulled from the servers and compiled.