From 7aae991fa2422459c5bab6498bc671d7dcc19033 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 11 Feb 2016 12:57:22 +0100 Subject: [PATCH] imagemagick: fix on mingw, only static ATM The output gets rather large (67 MB) as *each* executable gets ~5 MB of magick stuff statically. It seems we would have to fix or disable libxml2 first to get around this blowup. --- .../graphics/ImageMagick/default.nix | 45 +++++++++++++++---- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix index ef3b7b05b18..76752c94d45 100644 --- a/pkgs/applications/graphics/ImageMagick/default.nix +++ b/pkgs/applications/graphics/ImageMagick/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, pkgconfig, libtool +{ lib, stdenv, fetchurl, fetchpatch, pkgconfig, libtool , bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg , lcms2, openexr, libpng, librsvg, libtiff, libxml2 }: @@ -9,11 +9,28 @@ let else if stdenv.system == "x86_64-linux" || stdenv.system == "x86_64-darwin" then "x86-64" else if stdenv.system == "armv7l-linux" then "armv7l" else throw "ImageMagick is not supported on this platform."; + + cfg = { + version = "6.9.3-8"; + sha256 = "129s4cwp6cbhgsr3xr8186q5j02zpbk6kqfk4j7ayb563zsrdb4h"; + patches = []; + } + # Freeze version on mingw so we don't need to port the patch too often. + // lib.optionalAttrs (stdenv.cross.libc or null == "msvcrt") { + version = "6.9.2-0"; + sha256 = "17ir8bw1j7g7srqmsz3rx780sgnc21zfn0kwyj78iazrywldx8h7"; + patches = (fetchpatch { + name = "mingw-build.patch"; + url = "https://raw.githubusercontent.com/Alexpux/MINGW-packages/" + + "01ca03b2a4ef/mingw-w64-imagemagick/002-build-fixes.patch"; + sha256 = "1pypszlcx2sf7wfi4p37w1y58ck2r8cd5b2wrrwr9rh87p7fy1c0"; + }); + }; in stdenv.mkDerivation rec { name = "imagemagick-${version}"; - version = "6.9.3-8"; + inherit (cfg) version; src = fetchurl { urls = [ @@ -21,8 +38,9 @@ stdenv.mkDerivation rec { # the original source above removes tarballs quickly "http://distfiles.macports.org/ImageMagick/ImageMagick-${version}.tar.xz" ]; - sha256 = "129s4cwp6cbhgsr3xr8186q5j02zpbk6kqfk4j7ayb563zsrdb4h"; + inherit (cfg) sha256; }; + inherit (cfg) patches; outputs = [ "out" "doc" ]; @@ -35,15 +53,26 @@ stdenv.mkDerivation rec { ++ lib.optionals (ghostscript != null) [ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts" "--with-gslib" - ]; + ] + ++ lib.optionals (stdenv.cross.libc or null == "msvcrt") + [ "--enable-static" "--disable-shared" ] # due to libxml2 being without DLLs ATM + ; + + nativeBuildInputs = [ pkgconfig libtool ]; buildInputs = - [ pkgconfig libtool zlib fontconfig freetype ghostscript libjpeg - openexr libpng librsvg libtiff libxml2 - ]; + [ zlib fontconfig freetype ghostscript + libpng libtiff libxml2 + ] + ++ lib.optionals (stdenv.cross.libc or null != "msvcrt") + [ openexr librsvg ] + ; propagatedBuildInputs = - [ bzip2 freetype libjpeg libX11 libXext libXt lcms2 ]; + [ bzip2 freetype libjpeg lcms2 ] + ++ lib.optionals (stdenv.cross.libc or null != "msvcrt") + [ libX11 libXext libXt ] + ; postInstall = '' (cd "$out/include" && ln -s ImageMagick* ImageMagick)