1 ---------------------------------------
2 Installation instructions for GIMP @GIMP_APP_VERSION@
3 ---------------------------------------
5 There are some basic steps to building and installing GIMP.
7 GIMP @GIMP_APP_VERSION@ replaces earlier GIMP 2.x versions. It is advised that you
8 uninstall them before installing GIMP @GIMP_APP_VERSION@. If you want to keep your
9 older GIMP 2.x installation in parallel to GIMP @GIMP_APP_VERSION@, you have to
10 choose a separate prefix which is not in your default library search
13 GIMP @GIMP_APP_VERSION@ is fully backward compatible to all earlier GIMP 2.x version.
14 Plug-ins and scripts written for GIMP 2.8, 2.6 or earlier GIMP 2.x
15 versions will continue to work and don't need to be changed nor
16 recompiled to be used with GIMP @GIMP_APP_VERSION@.
18 The most important part is to make sure the requirements for a build
19 are fulfilled. We depend on a number of tools and libraries which are
20 listed below. For libraries this means you need to also have the
21 header files installed.
24 ******************************************************************
25 * Unless you are experienced with building software from source, *
26 * you should not attempt to build all these libraries yourself! *
27 * We suggest that you check if your distributor has development *
28 * packages of them and use these instead. *
29 ******************************************************************
32 1. You need to have installed a recent version of pkg-config (>= @GIMP_PKGCONFIG_VERSION@) available
33 from https://www.freedesktop.org/software/pkgconfig/.
35 2. You need intltool (at least @INTLTOOL_REQUIRED_VERSION@, but preferably a newer version).
36 Intltool can be downloaded from
37 https://ftp.gnome.org/pub/gnome/sources/intltool/
38 You also need gettext version @XGETTEXT_REQUIRED_VERSION@ or over. Earlier gettext had
39 issues with script-fu localization, ending up in incomplete GIMP localization.
41 3. You need to have GEGL version @GEGL_REQUIRED_VERSION@ or newer and babl version
42 @BABL_REQUIRED_VERSION@ or newer. You can get them from https://gegl.org/ or clone
43 them from the GNOME git repository:
45 https://gitlab.gnome.org/GNOME/babl.git
46 https://gitlab.gnome.org/GNOME/gegl.git
48 Note: install GEGL with libumfpack (SuiteSparse) for alternative Matting
49 engine "gegl:matting-levin" and OpenEXR library for OpenEXR format
52 4. You need to have installed GTK+ version @GTK_REQUIRED_VERSION@ or newer.
53 GIMP also needs a recent version of GLib (>= @GLIB_REQUIRED_VERSION@), GDK-Pixbuf
54 (>= @GDK_PIXBUF_REQUIRED_VERSION@), and Pango (>= @PANGOCAIRO_REQUIRED_VERSION@). Sources for these can be grabbed
55 from ftp://ftp.gtk.org/.
57 5. We use cairo >= @CAIRO_REQUIRED_VERSION@, which is hosted at
58 https://www.cairographics.org/.
60 6. We require PangoCairo, a Pango backend using Cairo. Make sure you
61 have Cairo, FreeType2 and fontconfig installed before you compile
62 Pango. GIMP depends on freetype2 being newer than version @FREETYPE2_REQUIRED_VERSION@
63 and fontconfig @FONTCONFIG_REQUIRED_VERSION@ or newer. Older versions are known to have
64 bugs that seriously affect the stability of GIMP.
66 We also require HarfBuzz @HARFBUZZ_REQUIRED_VERSION@ or newer, an
67 OpenType text shaping tool. As this is a dependency for Pango, you
68 will likely have it installed, but you may have to install a
69 development package for the headers.
71 7. The file-compressor plug-in requires zlib, libbzip2, and liblzma to
72 be installed. All these libraries are required dependencies.
74 8. For metadata access GIMP requires the gexiv2 library. It is hosted
75 at https://wiki.gnome.org/Projects/gexiv2 .
77 9. libpng, libjpeg, libtiff and lcms are hard dependencies that can
80 10. For MyPaint brushes, brushlib (libmypaint) @LIBMYPAINT_REQUIRED_VERSION@ is used.
81 The libmypaint repository is hosted at:
83 https://github.com/mypaint/libmypaint
85 If installing from repository, do not install the master branch!
86 Checkout the tag "v1.3.0" instead, or simply install from a tarball
87 or from your favorite package manager.
89 11. We also need the mypaint-brushes data package with is currently
90 hosted by Jehan, until the MyPaint project takes care of it:
92 https://github.com/Jehan/mypaint-brushes
94 If installing from repository, install from branch "v1.3.x" or the
95 particular tag "v1.3.0". In particular do not install from master
96 which installs brushes incompatible with GIMP.
98 Also this is a data packages and therefore it will install the
99 pkg-config file inside `$PREFIX/share/pkgconfig/`. If you install
100 mypaint-brushes from repository in a non-standard prefix, you will
101 have to make sure your $PKG_CONFIG_PATH environment variable also
102 lists `$PREFIX/share/pkgconfig/`.
104 12. You may want to install other third party libraries or programs
105 that are needed for some of the available plug-ins. We recommend
106 to check that the following libraries are installed: openjpeg,
107 webkit, libmng, librsvg, libwmf, libaa and libgs (Ghostscript).
109 13. HEIF support depends on the libheif library. If you don't have
110 access to pre-built packages, the code is available at:
112 https://github.com/strukturag/libheif
114 Make sure you build libheif with libde265 and libx265 support (for
115 respectively decoding and encoding), otherwise the plug-in is
118 14. The Python extension requires Python 2 development headers (@PYTHON2_REQUIRED_VERSION@
119 or newer) to be present. You will also need PyGTK and the
120 respective development headers.
122 15. Windows builds can now generate backtrace logs upon a crash.
123 The logs will be available in: %APPDATA%\GIMP\@GIMP_APP_VERSION@\CrashLog\
124 The feature depends on Dr.MinGW's ExcHndl library:
126 https://github.com/jrfonseca/drmingw
128 16. Configure GIMP by running the `configure' script. You may want
129 to pass some options to it, see below.
131 17. Build GIMP by running `make'. The use of GNU make is recommended.
132 If you need to tweak the build to make it work with other flavours
133 of make, we'd appreciate if you'd send us a patch with the changes.
135 18. Install GIMP by running `make install'. In order to avoid clashes
136 with other versions of GIMP, we install a binary called gimp-@GIMP_APP_VERSION@.
137 By default there's also a link created so that you can type 'gimp'
138 to start gimp-@GIMP_APP_VERSION@.
140 19. Summary of required packages and what version you need:
144 appstream-glib @APPSTREAM_GLIB_REQUIRED_VERSION@
145 ATK @ATK_REQUIRED_VERSION@
146 babl @BABL_REQUIRED_VERSION@
147 cairo @CAIRO_REQUIRED_VERSION@
148 Fontconfig @FONTCONFIG_REQUIRED_VERSION@
149 freetype2 @FREETYPE2_REQUIRED_VERSION@
150 GDK-PixBuf @GDK_PIXBUF_REQUIRED_VERSION@
151 GEGL @GEGL_REQUIRED_VERSION@
153 GLib @GLIB_REQUIRED_VERSION@
155 GTK+ @GTK_REQUIRED_VERSION@
156 HarfBuzz @HARFBUZZ_REQUIRED_VERSION@
159 liblzma @LIBLZMA_REQUIRED_VERSION@
160 libmypaint @LIBMYPAINT_REQUIRED_VERSION@
161 libpng @LIBPNG_REQUIRED_VERSION@
162 libpoppler-glib @POPPLER_REQUIRED_VERSION@
163 librsvg @RSVG_REQUIRED_VERSION@
165 Little CMS @LCMS_REQUIRED_VERSION@
167 pangocairo @PANGOCAIRO_REQUIRED_VERSION@
168 poppler-data @POPPLER_DATA_REQUIRED_VERSION@
171 20. Summary of optional packages:
173 Package Name Version Feature
175 cairo-pdf @CAIRO_PDF_REQUIRED_VERSION@ PDF export
176 ExcHndl - Crash logs on Windows with Dr. MinGW
179 libheif @LIBHEIF_REQUIRED_VERSION@ HEIF
181 libwebp @WEBP_REQUIRED_VERSION@ WebP (built with --enable-libwebpmux and --enable-libwebpdemux)
182 libwmf @WMF_REQUIRED_VERSION@ WMF
183 libXcursor - X11 Mouse Cursor
185 openexr @OPENEXR_REQUIRED_VERSION@ OpenEXR
186 OpenJPEG @OPENJPEG_REQUIRED_VERSION@ JPEG 2000
187 python 2 @PYTHON2_REQUIRED_VERSION@ Python plug-ins
188 webkit @WEBKITGTK_REQUIRED_VERSION@ Help browser & webpage
190 21. Summary of optional runtime dependencies:
192 darktable >= 1.7, with lua support enabled for raw loading
193 RawTherapee >= 5.2 for raw loading
194 xdg-email for sending emails
195 sendmail for sending emails if --with-sendmail enabled
196 gdb or lldb for our new bug-reporting dialog
198 Please make sure you don't have any old GTK+-2.x, jpeg, etc. libraries
199 lying around on your system, otherwise configure may fail to find the
203 Generic instructions for configuring and compiling auto-configured
204 packages are included below. Here is an illustration of commands that
205 might be used to build and install GIMP. The actual configuration,
206 compilation and installation output is not shown.
208 % tar xvfz gimp-@GIMP_VERSION@.tar.gz # unpack the sources
209 % cd gimp-@GIMP_VERSION@ # change to the toplevel directory
210 % ./configure # run the `configure' script
212 % make install # install GIMP
215 The `configure' script examines your system, and adapts GIMP to run on
216 it. The script has many options, some of which are described in the
217 generic instructions included at the end of this file. All of the
218 options can be listed using the command `./configure --help'. There
219 are several special options the GIMP `configure' script recognizes.
222 --disable-vector-icons. This option installs raster icons instead of
225 --enable-relocatable-bundle. This option forces GIMP to search some
226 resources (e.g. MyPaint brushes or libwmf fonts) relatively to the
227 running prefix, rather than using build-time paths.
229 --enable-shared and --disable-shared. This option affects whether
230 shared libraries will be built or not. Shared libraries provide
231 for much smaller executables. The default is to enable shared
232 libraries. Disabling shared libraries is almost never a good idea.
234 --enable-debug and --disable-debug. This option causes the build
235 process to compile with debugging enabled. If debugging is
236 disabled, GIMP will instead be compiled with optimizations turned
237 on. The default is for debugging to be disabled. NOTE: This
238 option is intended primarily as a convenience for developers.
240 --enable-profile and --disable-profile. This option causes the build
241 process to compile with execution profiling enabled. The default is
242 for profiling to be disabled. NOTE: This option is intended primarily
243 as a convenience for developers.
245 --enable-ansi and --disable-ansi. This option causes stricter
246 ANSI C checking to be performed when compiling with GCC. The
247 default is for strict checking to be disabled. NOTE: This option
248 is intended primarily as a convenience for developers.
250 --with-gimpdir=DIR. This option changes the default directory
251 GIMP uses to search for its configuration files from
252 ~/.config/GIMP/@GIMP_APP_VERSION@ (the directory .config/GIMP/@GIMP_APP_VERSION@
253 in the user's home directory) to ~/.config/DIR/@GIMP_APP_VERSION@.
254 If DIR is an absolute path, the directory will be changed to DIR.
256 --enable-binreloc. When compiled for Linux with this option enabled,
257 GIMP will be binary relocatable. Plug-ins and data files will
258 be searched relative to the gimp binary instead of in the paths
259 defined at compile time.
261 --with-shm=[none|sysv|posix|auto]. This option allows you to specify
262 how image data is transported between the core and plug-ins. Usually
263 the best way to do this is detected automatically.
265 --without-libtiff. configure will bail out if libtiff can not be
266 found. You better fix the underlying problem and install these
267 libraries with their header files. If you absolutely want to
268 compile GIMP without support for TIFF you need to explicitly
269 disable them using this option.
271 --without-aa. The AA plug-in needs libaa and configure checks for
272 its presence. Use --without-aa if you run into problems.
274 --without-libxpm. The XPM plug-in needs libxpm and configure checks
275 for its presence. If for some reason you don't want to build the
276 XPM plug-in even though the library is installed, use
277 --without-libxpm to disable it explicitly.
279 --without-libmng. The MNG plug-in needs libmng and configure checks
280 for its presence. If for some reason you don't want to build the
281 MNG plug-in even though the library is installed, use
282 --without-libmng to disable it explicitly.
284 --without-wmf. The WMF plug-in needs libwmf2 and configure checks for
285 its presence. Use --without-wmf if you run into problems.
287 --without-webkit. If for some reason you don't want to build the
288 Help Browser plug-in, you can use --without-webkit to disable
291 --without-librsvg. If for some reason you want to build GIMP without
292 SVG support, you can build --without-librsvg.
294 --without-print. If for some reason you don't want to build the Print
295 plug-in based on the GtkPrint API, you can build with --without-print.
297 --without-alsa. If you don't want to compile ALSA support into the
298 MIDI input controller module, you can use the --without-alsa option.
300 --without-linux-input. If you don't want to compile the Linux Input
301 controller module, you can use the --without-linux-input option.
303 --without-hal. If you want to build the Linux Input controller module
304 without HAL support, you can use the --without-hal option.
306 --without-mac-twain. If you don't want to compile the Mac OS X
307 TWAIN plug-in, you can use the --without-mac-twain option.
309 --with-gif-compression=[lzw|rle|none]. Allows to tune the compression
310 algorithm used by the GIF plug-in. If you are afraid of Unisys' LZW
311 patent (which should have expired in most countries by now), you
312 can go for simple run-length encoding or even configure the plug-in
313 to create uncompressed GIFs.
315 --enable-gtk-doc. This option controls whether the libgimp API
316 references will be created using gtk-doc. The HTML pages are
317 included in a standard tarball, so you will only need this if you
318 are building from SVN.
320 --with-html-dir=PATH. This option allows to specify where the
321 libgimp API reference should be installed. You might want to modify
322 the path so it points to the place where glib and gtk+ installed
323 their API references so that the libgimp reference can link to
326 --disable-mp. This option allows you to disable support for multiple
327 processors. It is enabled by default.
329 --with-sendmail[=PATH]. This option is used to tell GIMP to send email
330 through sendmail instead of xdg-email. You can optionally indicate
331 where to find the sendmail command. Otherwise sendmail will simply
332 be searched in your $PATH at runtime.
334 --with-desktop-dir=[PATH]. This option specifies where to install
335 desktop files. These files are used by desktop environments that
336 comply to the specs published at freedesktop.org. The default
337 value ${prefix}/share should be fine if your desktop environment
338 is installed in the same prefix as gimp. No files are installed
339 if you call configure with --without-desktop-dir.
341 --disable-default-binary. Use this option if you don't want to make
342 gimp-@GIMP_APP_VERSION@ the default GIMP installation. Otherwise a link called
343 gimp pointing to the gimp-@GIMP_APP_VERSION@ executable will be installed.
345 --disable-gimp-console. Use this option if you don't want the
346 gimp-console binary to be built in addition to the standard binary.
347 gimp-console is useful for command-line batch mode or as a server.
349 --disable-python. If for some reason you don't want to build the
350 Python based PyGIMP plug-in, you can use --disable-python.
352 --without-script-fu. If for some reason you don't want to build the
353 Script-Fu plug-in, you can use --without-script-fu.
355 --without-xmc. The X11 Mouse Cursor(XMC) plug-in needs libXcursor
356 and configure checks for its presence. If for some reason you
357 don't want to build the XMC plug-in even though the library is
358 installed, use --without-xmc to disable it explicitly.
361 The `make' command builds several things:
362 - A bunch of public libraries in the directories starting with 'libgimp'.
363 - The plug-in programs in the 'plug-ins' directory.
364 - Some modules in the 'modules' subdirectory.
365 - The main GIMP program 'gimp-@GIMP_APP_VERSION@' in `app'.
367 The `make install' commands installs the GIMP header files associated
368 with the libgimp libraries, the plug-ins, some data files and the GIMP
369 executable. After running `make install' and assuming the build process
370 was successful you should be able to run `gimp'.
373 When ./configure fails
374 ======================
376 'configure' uses pkg-config, a tool that replaces the old foo-config
377 scripts. The most recent version is available from
378 https://www.freedesktop.org/software/pkgconfig/
380 'configure' tries to compile and run a short GTK+ program. There are
381 several reasons why this might fail:
383 * pkg-config could not find the file 'gtk+-2.0.pc' that gets installed
384 with GTK. (This file is used to get information about where GTK+ is
387 Fix: Either make sure that this file is in the path where pkg-config
388 looks for it (try 'pkg-config --debug' or add the location of
389 gtk+-2.0.pc to the environment variable PKG_CONFIG_PATH before running
392 * Libraries you installed are not found when you attempt to start GIMP.
393 The details of how to fix this problem will depend on the system:
395 On Linux and other systems using ELF libraries, add the directory to
396 holding the library to /etc/ld.so.conf or to the environment variable
397 LD_LIBRARY_PATH, and run 'ldconfig'.
399 On other systems, it may be necessary to encode this path
400 into the executable, by setting the LDFLAGS environment variable
401 before running configure. For example:
403 LDFLAGS="-R/home/joe/lib" ./configure
405 LDFLAGS="-Wl,-rpath -Wl,/home/joe/lib" ./configure
407 * An old version of the GTK+ libraries was found instead of
408 your newly installed version. This commonly happens if a
409 binary package of GTK+ was previously installed on your system,
410 and you later compiled GTK+ from source.
412 Fix: Remove the old libraries and include files. If you are afraid
413 that removing the old libraries may break other packages supplied by
414 your distributor, you can try installing GLib, GTK+ and other
415 libraries in a different prefix after setting the environment
416 variable PKG_CONFIG_LIBDIR to point to lib/pkgconfig/ in that new
417 prefix so that it does not try to read the *.pc files from the
418 default directory (/usr/lib/pkgconfig). However, removing the old
419 packages is often the easier solution.
421 A detailed log of the ./configure output is written to the file
422 config.log. This may help diagnose problems.
425 When ./configure fails on plug-ins
426 ==================================
428 There are some GIMP plug-ins that need additional third-party libraries
429 installed on your system. For example to compile the plug-ins that load
430 and save JPEG, PNG or TIFF files you need the related libraries and header
431 files installed, otherwise you'll get a message that plug-in xyz will not
434 If you are sure that those libraries are correctly installed, but configure
435 fails to detect them, the following might help:
437 Set your LDFLAGS environment variable to look for the library in a certain
438 place, e.g. if you are working in a bash shell you would say:
439 export LDFLAGS="-L<path_to_library> -L<path_to_another_one>"
440 before you run configure.
442 Set your CPPFLAGS environment variable to look for the header file in a
443 certain place, e.g. if you are working in a bash shell you would say:
444 export CPPFLAGS="-I<path_to_header_file> -I<path_to_another_one>"
445 before you run configure.
448 Generic Instructions for Building Auto-Configured Packages
449 ==========================================================
452 To compile this package:
454 1. Configure the package for your system. In the directory that this
455 file is in, type `./configure'. If you're using `csh' on an old
456 version of System V, you might need to type `sh configure' instead to
457 prevent `csh' from trying to execute `configure' itself.
459 The `configure' shell script attempts to guess correct values for
460 various system-dependent variables used during compilation, and
461 creates the Makefile(s) (one in each subdirectory of the source
462 directory). In some packages it creates a C header file containing
463 system-dependent definitions. It also creates a file `config.status'
464 that you can run in the future to recreate the current configuration.
465 Running `configure' takes a minute or two.
467 To compile the package in a different directory from the one
468 containing the source code, you must use GNU make. `cd' to the
469 directory where you want the object files and executables to go and
470 run `configure' with the option `--srcdir=DIR', where DIR is the
471 directory that contains the source code. Using this option is
472 actually unnecessary if the source code is in the parent directory of
473 the one in which you are compiling; `configure' automatically checks
474 for the source code in `..' if it does not find it in the current
477 By default, `make install' will install the package's files in
478 /usr/local/bin, /usr/local/lib, /usr/local/man, etc. You can specify
479 an installation prefix other than /usr/local by giving `configure' the
480 option `--prefix=PATH'.
482 You can specify separate installation prefixes for machine-specific
483 files and machine-independent files. If you give `configure' the
484 option `--exec-prefix=PATH', the package will use PATH as the prefix
485 for installing programs and libraries. Normally, all files are
486 installed using the same prefix.
488 `configure' ignores any other arguments that you give it.
490 If your system requires unusual options for compilation or linking
491 that `configure' doesn't know about, you can give `configure' initial
492 values for some variables by setting them in the environment. In
493 Bourne-compatible shells, you can do that on the command line like
495 CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure
497 The `make' variables that you might want to override with environment
498 variables when running `configure' are:
500 (For these variables, any value given in the environment overrides the
501 value that `configure' would choose:)
502 CC C compiler program.
503 Default is `cc', or `gcc' if `gcc' is in your PATH.
504 INSTALL Program to use to install files.
505 Default is `install' if you have it, `cp' otherwise.
506 INCLUDEDIR Directory for `configure' to search for include files.
507 Default is /usr/include.
509 (For these variables, any value given in the environment is added to
510 the value that `configure' chooses:)
511 DEFS Configuration options, in the form '-Dfoo -Dbar ...'
512 LIBS Libraries to link with, in the form '-lfoo -lbar ...'
514 If you need to do unusual things to compile the package, we encourage
515 you to teach `configure' how to do them and mail the diffs to the
516 address given in the README so we can include them in the next
519 2. Type `make' to compile the package.
521 3. Type `make install' to install programs, data files, and
524 4. You can remove the program binaries and object files from the
525 source directory by typing `make clean'. To also remove the
526 Makefile(s), the header file containing system-dependent definitions
527 (if the package uses one), and `config.status' (all the files that
528 `configure' created), type `make distclean'.
530 The file `configure.ac' is used as a template to create `configure' by
531 a program called `autoconf'. You will only need it if you want to
532 regenerate `configure' using a newer version of `autoconf'.