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

179 lines
3.5 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
2019-01-27 09:12:49 +00:00
, mypaint-brushes1
2019-10-31 22:20:09 +00:00
, 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.18";
2017-12-22 07:59:08 +00:00
outputs = [ "out" "dev" ];
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 = "Zb/hEejuv/093jAWzLUH+ZSNJmPZSXy0ONm7YJ4R1xY=";
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
2019-01-27 09:12:49 +00:00
mypaint-brushes1
2019-10-31 22:20:09 +00:00
] ++ 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
"--disable-check-update"
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"
# fix libdir in pc files (${exec_prefix} needs to be passed verbatim)
"--libdir=\${exec_prefix}/lib"
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;
};
}