From de99dc50495e0fb75a039586b882d1cd1b51eb0b Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Wed, 28 Dec 2016 14:15:53 +0100 Subject: [PATCH] imagemagick7: init at 7.0.4-0 --- .../applications/graphics/ImageMagick/7.0.nix | 89 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 26 ++++++ 2 files changed, 115 insertions(+) create mode 100644 pkgs/applications/graphics/ImageMagick/7.0.nix diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix new file mode 100644 index 00000000000..3a0771a73ef --- /dev/null +++ b/pkgs/applications/graphics/ImageMagick/7.0.nix @@ -0,0 +1,89 @@ +{ lib, stdenv, fetchurl, fetchpatch, pkgconfig, libtool +, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg +, lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg, libwebp +}: + +let + arch = + if stdenv.system == "i686-linux" then "i686" + 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 = "7.0.4-0"; + sha256 = "0hfkdvfl60f9ksh07c06cpq8ib05apczl767yyvc671gd90n11ds"; + patches = []; + }; +in + +stdenv.mkDerivation rec { + name = "imagemagick-${version}"; + inherit (cfg) version; + + src = fetchurl { + urls = [ + "mirror://imagemagick/releases/ImageMagick-${version}.tar.xz" + # the original source above removes tarballs quickly + "http://distfiles.macports.org/ImageMagick/ImageMagick-${version}.tar.xz" + "https://bintray.com/homebrew/mirror/download_file?file_path=imagemagick-${version}.tar.xz" + ]; + inherit (cfg) sha256; + }; + + patches = [ ./imagetragick.patch ] ++ cfg.patches; + + outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big + outputMan = "out"; # it's tiny + + enableParallelBuilding = true; + + configureFlags = + [ "--with-frozenpaths" ] + ++ [ "--with-gcc-arch=${arch}" ] + ++ lib.optional (librsvg != null) "--with-rsvg" + ++ 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 = + [ zlib fontconfig freetype ghostscript + libpng libtiff libxml2 + ] + ++ lib.optionals (stdenv.cross.libc or null != "msvcrt") + [ openexr librsvg openjpeg ] + ; + + propagatedBuildInputs = + [ bzip2 freetype libjpeg lcms2 ] + ++ lib.optionals (stdenv.cross.libc or null != "msvcrt") + [ libX11 libXext libXt libwebp ] + ; + + postInstall = '' + (cd "$dev/include" && ln -s ImageMagick* ImageMagick) + moveToOutput "bin/*-config" "$dev" + moveToOutput "lib/ImageMagick-*/config-Q16HDRI" "$dev" # includes configure params + for file in "$dev"/bin/*-config; do + substituteInPlace "$file" --replace pkg-config \ + "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkgconfig}/bin/pkg-config'" + done + '' + lib.optionalString (ghostscript != null) '' + for la in $out/lib/*.la; do + sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la + done + ''; + + meta = with stdenv.lib; { + homepage = http://www.imagemagick.org/; + description = "A software suite to create, edit, compose, or convert bitmap images"; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ the-kenny wkennington ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ee8523342ff..b5d5cd53291 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13571,6 +13571,32 @@ in imagemagickBig = callPackage ../applications/graphics/ImageMagick { }; + imagemagick7_light = lowPrio (imagemagick.override { + bzip2 = null; + zlib = null; + libX11 = null; + libXext = null; + libXt = null; + fontconfig = null; + freetype = null; + ghostscript = null; + libjpeg = null; + lcms2 = null; + openexr = null; + libpng = null; + librsvg = null; + libtiff = null; + libxml2 = null; + openjpeg = null; + libwebp = null; + }); + + imagemagick7 = lowPrio (imagemagickBig.override { + ghostscript = null; + }); + + imagemagick7Big = lowPrio (callPackage ../applications/graphics/ImageMagick/7.0.nix { }); + # Impressive, formerly known as "KeyJNote". impressive = callPackage ../applications/office/impressive { };