My personal project and infrastructure archive
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nomicon/pkgs/applications/graphics/inkscape/default.nix

72 lines
2.2 KiB

{ stdenv, fetchurl, fetchpatch, pkgconfig, perl, perlXMLParser, libXft
, libpng, zlib, popt, boehmgc, libxml2, libxslt, glib, gtkmm2
, glibmm, libsigcxx, lcms, boost, gettext, makeWrapper
, gsl, python2, poppler, imagemagick, libwpg, librevenge
, libvisio, libcdr, libexif, potrace, autoreconfHook
, intltool
, lib
}:
# Note that originally this Nix expression used CMake to build but
# this led to errors on MacOS of "Too many arguments". Inkscape
# supports autoconf and we will use this for now on.
let
python2Env = python2.withPackages(ps: with ps; [ numpy lxml ]);
in
stdenv.mkDerivation rec {
name = "inkscape-0.92.3";
src = fetchurl {
url = "https://media.inkscape.org/dl/resources/file/${name}.tar.bz2";
sha256 = "1chng2yw8dsjxc9gf92aqv7plj11cav8ax321wmakmv5bb09cch6";
};
postPatch = ''
patchShebangs share/extensions
patchShebangs fix-roff-punct
# Python is used at run-time to execute scripts, e.g., those from
# the "Effects" menu.
substituteInPlace src/extension/implementation/script.cpp \
--replace '"python-interpreter", "python"' '"python-interpreter", "${python2Env}/bin/python"'
'';
nativeBuildInputs = [ pkgconfig autoreconfHook intltool ];
buildInputs = [
perl perlXMLParser libXft libpng zlib popt boehmgc
libxml2 libxslt glib gtkmm2 glibmm libsigcxx lcms boost gettext
makeWrapper gsl poppler imagemagick libwpg librevenge
libvisio libcdr libexif potrace python2Env
];
enableParallelBuilding = true;
preConfigure = ''
intltoolize -f
'';
postInstall = ''
# Make sure PyXML modules can be found at run-time.
rm "$out/share/icons/hicolor/icon-theme.cache"
'';
# 0.92.3 complains about an invalid conversion from const char * to char *
NIX_CFLAGS_COMPILE = " -fpermissive ";
meta = with lib; {
license = "GPL";
homepage = https://www.inkscape.org;
description = "Vector graphics editor";
platforms = platforms.all;
longDescription = ''
Inkscape is a feature-rich vector graphics editor that edits
files in the W3C SVG (Scalable Vector Graphics) file format.
If you want to import .eps files install ps2edit.
'';
maintainers = with maintainters; [ matthewbauer ];
};
}