nixpkgs/pkgs/applications/graphics/gimp/default.nix

174 lines
3.4 KiB
Nix
Raw Normal View History

2019-10-31 22:20:09 +00:00
{ stdenv
, lib
, fetchurl
, substituteAll
, pkgconfig
, intltool
, babl
, gegl
, gtk2
, glib
, gdk-pixbuf
, isocodes
, pango
, cairo
, freetype
, fontconfig
, lcms
, libpng
, libjpeg
, poppler
, poppler_data
, libtiff
, libmng
, librsvg
, libwmf
, zlib
, libzip
, ghostscript
, aalib
, shared-mime-info
, python2Packages
, libexif
, gettext
, xorg
, glib-networking
, libmypaint
, gexiv2
, harfbuzz
, mypaint-brushes
, libwebp
, libheif
, libgudev
, openexr
, AppKit
, Cocoa
, gtk-mac-integration-gtk2
}:
2017-12-22 07:59:08 +00:00
let
inherit (python2Packages) pygtk wrapPython python;
in stdenv.mkDerivation rec {
pname = "gimp";
version = "2.10.14";
2017-12-22 07:59:08 +00:00
src = fetchurl {
2019-10-31 22:20:09 +00:00
url = "http://download.gimp.org/pub/gimp/v${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "0m6wdnfvsxyhimdd4v3351g4r1fklllnbipbwcfym3h7q88hz6yz";
2017-12-22 07:59:08 +00:00
};
2019-10-31 22:20:09 +00:00
nativeBuildInputs = [
pkgconfig
intltool
gettext
wrapPython
];
2017-12-22 07:59:08 +00:00
buildInputs = [
2019-10-31 22:20:09 +00:00
babl
gegl
gtk2
glib
gdk-pixbuf
pango
cairo
gexiv2
harfbuzz
isocodes
freetype
fontconfig
lcms
libpng
libjpeg
poppler
poppler_data
libtiff
openexr
libmng
librsvg
libwmf
zlib
libzip
ghostscript
aalib
shared-mime-info
libwebp
libheif
python
pygtk
libexif
xorg.libXpm
glib-networking
libmypaint
mypaint-brushes
] ++ lib.optionals stdenv.isDarwin [
AppKit
Cocoa
gtk-mac-integration-gtk2
] ++ lib.optionals stdenv.isLinux [
libgudev
];
# needed by gimp-2.0.pc
propagatedBuildInputs = [
gegl
];
2017-12-22 07:59:08 +00:00
pythonPath = [ pygtk ];
# Check if librsvg was built with --disable-pixbuf-loader.
2019-05-22 12:03:39 +01:00
PKG_CONFIG_GDK_PIXBUF_2_0_GDK_PIXBUF_MODULEDIR = "${librsvg}/${gdk-pixbuf.moduleDir}";
2017-12-22 07:59:08 +00:00
preConfigure = ''
# The check runs before glib-networking is registered
export GIO_EXTRA_MODULES="${glib-networking}/lib/gio/modules:$GIO_EXTRA_MODULES"
'';
patches = [
# to remove compiler from the runtime closure, reference was retained via
# gimp --version --verbose output
(substituteAll {
src = ./remove-cc-reference.patch;
cc_version = stdenv.cc.cc.name;
})
];
2017-12-22 07:59:08 +00:00
postFixup = ''
wrapPythonProgramsIn $out/lib/gimp/${passthru.majorVersion}/plug-ins/
2019-10-31 22:20:09 +00:00
wrapProgram $out/bin/gimp-${lib.versions.majorMinor version} \
2017-12-22 07:59:08 +00:00
--prefix PYTHONPATH : "$PYTHONPATH" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
'';
passthru = rec {
# The declarations for `gimp-with-plugins` wrapper,
# used for determining plug-in installation paths
2019-10-31 22:20:09 +00:00
majorVersion = "${lib.versions.major version}.0";
2017-12-22 07:59:08 +00:00
targetPluginDir = "lib/gimp/${majorVersion}/plug-ins";
targetScriptDir = "share/gimp/${majorVersion}/scripts";
2017-12-22 07:59:08 +00:00
# probably its a good idea to use the same gtk in plugins ?
gtk = gtk2;
};
configureFlags = [
"--without-webkit" # old version is required
2018-05-20 23:16:19 +01:00
"--with-bug-report-url=https://github.com/NixOS/nixpkgs/issues/new"
2019-03-24 19:47:08 +00:00
"--with-icc-directory=/run/current-system/sw/share/color/icc"
2017-12-22 07:59:08 +00:00
];
2018-12-03 15:35:21 +00:00
# on Darwin,
# test-eevl.c:64:36: error: initializer element is not a compile-time constant
doCheck = !stdenv.isDarwin;
2017-12-22 07:59:08 +00:00
enableParallelBuilding = true;
2019-10-31 22:20:09 +00:00
meta = with lib; {
2017-12-22 07:59:08 +00:00
description = "The GNU Image Manipulation Program";
2019-10-31 22:20:09 +00:00
homepage = "https://www.gimp.org/";
2017-12-22 07:59:08 +00:00
maintainers = with maintainers; [ jtojnar ];
license = licenses.gpl3Plus;
platforms = platforms.unix;
};
}