gnu: linux-libre: Update to 4.1.
[jackhill/guix/guix.git] / gnu / packages / imagemagick.scm
index 0c80c0a..4e49c60 100644 (file)
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,6 +20,7 @@
 (define-module (gnu packages imagemagick)
   #:use-module (guix packages)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system perl)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:select (fsf-free))
   #:use-module (gnu packages algebra)
@@ -27,9 +29,7 @@
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
-  #:use-module (gnu packages libpng)
-  #:use-module (gnu packages libtiff)
-  #:use-module (gnu packages libjpeg)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 (define-public imagemagick
   (package
     (name "imagemagick")
-    (version "6.8.9-0")
+    (version "6.9.1-3")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://imagemagick/ImageMagick-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1lapn2798fkc2wn81slpms5p21kq4dsyg45khsk7n8p69cvrmw2b"))))
+               "18wbsjfccxlgsdsd6h9wvhcjrsglyi086jk4bk029ik07rh81laz"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases (alist-cons-before
-                 'build 'pre-build
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   (substitute* "Makefile"
-                     ;; Clear the `LIBRARY_PATH' setting, which otherwise
-                     ;; interferes with our own use.
-                     (("^LIBRARY_PATH[[:blank:]]*=.*$")
-                      "")
+     `(#:phases (modify-phases %standard-phases
+                  (add-before
+                   'build 'pre-build
+                   (lambda* (#:key outputs #:allow-other-keys)
+                     (substitute* "Makefile"
+                       ;; Clear the `LIBRARY_PATH' setting, which otherwise
+                       ;; interferes with our own use.
+                       (("^LIBRARY_PATH[[:blank:]]*=.*$")
+                        "")
 
-                     ;; Since the Makefile overrides $docdir, modify it to
-                     ;; refer to what we want.
-                     (("^DOCUMENTATION_PATH[[:blank:]]*=.*$")
-                      (let ((doc (assoc-ref outputs "doc")))
-                        (string-append "DOCUMENTATION_PATH = "
-                                       doc "/share/doc/"
-                                       ,name "-" ,version "\n")))))
-                 %standard-phases)))
+                       ;; Since the Makefile overrides $docdir, modify it to
+                       ;; refer to what we want.
+                       (("^DOCUMENTATION_PATH[[:blank:]]*=.*$")
+                        (let ((doc (assoc-ref outputs "doc")))
+                          (string-append "DOCUMENTATION_PATH = "
+                                         doc "/share/doc/"
+                                         ,name "-" ,version "\n"))))))
+                  (add-before
+                   'configure 'strip-configure-xml
+                   (lambda _
+                     (substitute* "config/configure.xml.in"
+                       ;; Do not record 'configure' arguments in the
+                       ;; configure.xml file that gets installed: That would
+                       ;; include --docdir, and thus retain a reference to the
+                       ;; 'doc' output.
+                       (("@CONFIGURE_ARGS@")
+                        "not recorded")))))))
     ;; TODO: Add Jasper etc.
     (inputs `(("fftw" ,fftw)
               ("graphviz" ,graphviz)
     (synopsis "Create, edit, compose, or convert bitmap images")
     (description
      "ImageMagick® is a software suite to create, edit, compose, or convert
-bitmap images. It can read and write images in a variety of formats (over 100)
+bitmap images.  It can read and write images in a variety of formats (over 100)
 including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG,
-and TIFF. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and
+and TIFF.  Use ImageMagick to resize, flip, mirror, rotate, distort, shear and
 transform images, adjust image colors, apply various special effects, or draw
 text, lines, polygons, ellipses and Bézier curves.")
     (license (fsf-free "http://www.imagemagick.org/script/license.php"))))
+
+(define-public perl-image-magick
+  (package
+    (name "perl-image-magick")
+    (version "6.89")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/J/JC/JCRISTY/"
+                           "PerlMagick-" version "-1.tar.gz"))
+       (sha256
+        (base32
+         "0n9afy1z5bhf9phrbahnkwhgcmijn8jggpbzwrivw1zhliliiy68"))))
+    (build-system perl-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("imagemagick" ,imagemagick)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before
+          'configure 'image-magick-flags
+          (lambda* (#:key inputs #:allow-other-keys)
+            (let ((im (assoc-ref inputs "imagemagick")))
+              (substitute* "Makefile.PL"
+                (("my \\$INC_magick = .*")
+                 "my $INC_magick = `pkg-config --cflags ImageMagick`;\n")
+                (("my \\$LIBS_magick = .*")
+                 "my $LIBS_magick = `pkg-config --libs ImageMagick`;\n")))))
+         (add-before
+          'check 'skip-mpeg-tests
+          (lambda _
+            ;; TODO: MPEG tests fail even though our imagemagick supports
+            ;; MPEG.  Has been reported elsewhere,
+            ;; http://www.imagemagick.org/discourse-server/viewtopic.php?f=7&t=25036,
+            ;; so skip for now.
+            (delete-file "t/mpeg/read.t"))))))
+    (home-page "http://search.cpan.org/dist/PerlMagick")
+    (synopsis "Perl interface to ImageMagick")
+    (description "This Perl extension allows the reading, manipulation and
+writing of a large number of image file formats using the ImageMagick library.
+Use it to create, edit, compose, or convert bitmap images from within a Perl
+script.")
+    ;; See Magick.pm
+    (license (package-license imagemagick))))