Skip to content

Commit

Permalink
ghostscript: link against "systemwide" liblcms2
Browse files Browse the repository at this point in the history
GS ships with a fork of lcms2 ("lcms2mt"), but the ABI separation
between the fork and the original seems insufficient. If libgs is linked
alongside liblcms2 (for example, this is the case with imagemagick) then
it will call into the original library instead of the fork, causing
segfaults.

Follow the example of both Arch and Debian in this regard -- they both
use the systemwide lib instead of the fork.
  • Loading branch information
delroth committed Mar 10, 2019
1 parent b854767 commit 128bb7b
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions pkgs/misc/ghostscript/default.nix
@@ -1,6 +1,6 @@
{ config, stdenv, lib, fetchurl, pkgconfig, zlib, expat, openssl, autoconf
, libjpeg, libpng, libtiff, freetype, fontconfig, libpaper, jbig2dec
, libiconv, ijs
, libiconv, ijs, lcms2
, cupsSupport ? config.ghostscript.cups or (!stdenv.isDarwin), cups ? null
, x11Support ? cupsSupport, xlibsWrapper ? null # with CUPS, X11 only adds very little
}:
Expand Down Expand Up @@ -56,16 +56,15 @@ stdenv.mkDerivation rec {
buildInputs =
[ zlib expat openssl
libjpeg libpng libtiff freetype fontconfig libpaper jbig2dec
libiconv ijs
libiconv ijs lcms2
]
++ lib.optional x11Support xlibsWrapper
++ lib.optional cupsSupport cups
;
# No lcms2; upstream "is in process of forking it" and thus won't use one from a library.

preConfigure = ''
# requires in-tree (heavily patched) openjpeg
rm -rf jpeg libpng zlib jasper expat tiff lcms{,2} jbig2dec freetype cups/libs ijs
rm -rf jpeg libpng zlib jasper expat tiff lcms2mt jbig2dec freetype cups/libs ijs
sed "s@if ( test -f \$(INCLUDE)[^ ]* )@if ( true )@; s@INCLUDE=/usr/include@INCLUDE=/no-such-path@" -i base/unix-aux.mak
sed "s@^ZLIBDIR=.*@ZLIBDIR=${zlib.dev}/include@" -i configure.ac
Expand Down

0 comments on commit 128bb7b

Please sign in to comment.