licenses: Add 'imlib2'.
[jackhill/guix/guix.git] / gnu / packages / image.scm
index 149720e..38e3ddd 100644 (file)
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xml)
-  #:use-module ((guix licenses) #:renamer (symbol-prefix-proc 'license:))
+  #:use-module (gnu packages ghostscript)         ;lcms
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages perl)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
-  #:use-module (guix build-system gnu))
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system cmake)
+  #:use-module (srfi srfi-1))
 
 (define-public libpng
   (package
    (synopsis "Library for handling PNG files")
    (description
     "Libpng is the official PNG (Portable Network Graphics) reference
-library. It supports almost all PNG features and is extensible.")
+library.  It supports almost all PNG features and is extensible.")
    (license license:zlib)
    (home-page "http://www.libpng.org/pub/png/libpng.html")))
 
 (define-public libjpeg
   (package
    (name "libjpeg")
-   (version "9")
+   (version "9a")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://www.ijg.org/files/jpegsrc.v"
                    version ".tar.gz"))
             (sha256 (base32
-                     "0dg5wxcx3cw0hal9gvivj97vid9z0s5sb1yvg55hpxmafn9rxqn4"))))
+                     "19q5zr4n60sjcvfbyv06n4pcl1mai3ipvnd2akflayciinj3wx9s"))))
    (build-system gnu-build-system)
-   (synopsis "Libjpeg, a library for handling JPEG files")
+   (synopsis "Library for handling JPEG files")
    (description
     "Libjpeg implements JPEG image encoding, decoding, and transcoding.
 JPEG is a standardized compression method for full-color and gray-scale
@@ -104,7 +111,7 @@ image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats.")
       (list (string-append "--with-jpeg-include-dir="
                            (assoc-ref %build-inputs "libjpeg-8")
                            "/include"))))
-   (synopsis "Libtiff, a library for handling TIFF files")
+   (synopsis "Library for handling TIFF files")
    (description
     "Libtiff provides support for the Tag Image File Format (TIFF), a format
 used for storing image data.
@@ -146,3 +153,191 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.")
 
     ;; 'COPYING' is the GPLv2, but file headers say LGPLv2.0+.
     (license license:lgpl2.0+)))
+
+(define-public jbig2dec
+  (package
+    (name "jbig2dec")
+    (version "0.11")
+    (source
+      (origin
+        (method url-fetch)
+        (uri             ;; The link on the homepage is dead.
+          (string-append "http://distfiles.gentoo.org/distfiles/" name "-"
+                          version ".tar.gz"))
+        (sha256
+          (base32 "1ffhgmf2fqzk0h4k736pp06z7q5y4x41fg844bd6a9vgncq86bby"))
+        (patches (list (search-patch "jbig2dec-ignore-testtest.patch")))))
+
+    (build-system gnu-build-system)
+    (synopsis "Decoder of the JBIG2 image compression format")
+    (description
+      "JBIG2 is designed for lossy or lossless encoding of 'bilevel'
+(1-bit monochrome) images at moderately high resolution, and in
+particular scanned paper documents.  In this domain it is very
+efficient, offering compression ratios on the order of 100:1.
+
+This is a decoder only implementation, and currently is in the alpha
+stage, meaning it doesn't completely work yet.  However, it is
+maintaining parity with available encoders, so it is useful for real
+work.")
+    (home-page "http://jbig2dec.sourceforge.net/")
+    (license license:gpl2+)))
+
+(define-public openjpeg
+  (package
+    (name "openjpeg")
+    (version "2.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri
+          (string-append "http://openjpeg.googlecode.com/files/" name "-"
+                         version ".tar.gz"))
+        (sha256
+          (base32 "1n05yrmscpgksrh2kfh12h18l0lw9j03mgmvwcg3hm8m0lwgak9k"))))
+
+    (build-system cmake-build-system)
+    (arguments
+      ;; Trying to run `$ make check' results in a no rule fault.
+      '(#:tests? #f))
+    (inputs
+      `(("lcms" ,lcms)
+        ("libpng" ,libpng)
+        ("libtiff" ,libtiff)
+        ("zlib" ,zlib)))
+    (synopsis "JPEG 2000 codec")
+    (description
+      "The OpenJPEG library is a JPEG 2000 codec written in C.  It has
+been developed in order to promote the use of JPEG 2000, the new
+still-image compression standard from the Joint Photographic Experts
+Group (JPEG).
+
+In addition to the basic codec, various other features are under
+development, among them the JP2 and MJ2 (Motion JPEG 2000) file formats,
+an indexing tool useful for the JPIP protocol, JPWL-tools for
+error-resilience, a Java-viewer for j2k-images, ...")
+    (home-page "http://jbig2dec.sourceforge.net/")
+    (license license:bsd-2)))
+
+(define-public giflib
+  (package
+    (name "giflib")
+    (version "4.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/giflib/giflib-"
+                                  (first (string-split version #\.))
+                                  ".x/giflib-" version ".tar.bz2"))
+              (sha256
+               (base32 "0rmp7ipzk42r841bggd7bfqk4p8qsssbp4wcck4qnz7p4rkxbj0a"))))
+    (build-system gnu-build-system)
+    (outputs '("bin"                    ; utility programs
+               "out"))                  ; library
+    (inputs `(("libx11" ,libx11)
+              ("libice" ,libice)
+              ("libsm" ,libsm)
+              ("perl" ,perl)))
+    (arguments
+     `(#:phases (alist-cons-after
+                 'unpack 'disable-html-doc-gen
+                 (lambda _
+                   (substitute* "doc/Makefile.in"
+                     (("^all: allhtml manpages") "")))
+                 (alist-cons-after
+                  'install 'install-manpages
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (let* ((bin (assoc-ref outputs "bin"))
+                           (man1dir (string-append bin "/share/man/man1")))
+                      (mkdir-p man1dir)
+                      (for-each (lambda (file)
+                                  (let ((base (basename file)))
+                                    (format #t "installing `~a' to `~a'~%"
+                                            base man1dir)
+                                    (copy-file file
+                                               (string-append
+                                                man1dir "/" base))))
+                                (find-files "doc" "\\.1"))))
+                  %standard-phases))))
+    (synopsis "Tools and library for working with GIF images")
+    (description
+     "GIFLIB is a library for reading and writing GIF images.  It is API and
+ABI compatible with libungif which was in wide use while the LZW compression
+algorithm was patented.  Tools are also included to convert, manipulate,
+compose, and analyze GIF images.")
+    (home-page "http://giflib.sourceforge.net/")
+    (license license:x11)))
+
+(define-public imlib2
+  (package
+    (name "imlib2")
+    (version "1.4.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/enlightenment/imlib2-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0kjggg4gfn6chi8v1xddd5qwk1fbnl7rvd93qiclv5v11s615k0p"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(;; Will be fixed in the next release:
+       ;; <http://git.enlightenment.org/legacy/imlib2.git/commit/?id=5dde234b2d3caf067ea827858c53adc5d4c56c13>.
+       #:phases (alist-cons-before
+                 'configure 'patch-config
+                 (lambda _
+                   (substitute* "imlib2-config.in"
+                     (("@my_libs@") "")))
+                 %standard-phases)))
+    (native-inputs
+     `(("pkgconfig" ,pkg-config)))
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("freetype" ,freetype)
+       ("libjpeg" ,libjpeg)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)
+       ("giflib" ,giflib)
+       ("bzip2" ,bzip2)))
+    (home-page "http://sourceforge.net/projects/enlightenment/")
+    (synopsis
+     "Loading, saving, rendering and manipulating image files")
+    (description
+     "Imlib2 is a library that does image file loading and saving as well as
+rendering, manipulation, arbitrary polygon support, etc.
+
+It does ALL of these operations FAST.  Imlib2 also tries to be highly
+intelligent about doing them, so writing naive programs can be done easily,
+without sacrificing speed.
+
+This is a complete rewrite over the Imlib 1.x series.  The architecture is
+more modular, simple, and flexible.")
+    (license license:imlib2)))
+
+(define-public giblib
+  (package
+    (name "giblib")
+    (version "1.2.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://linuxbrit.co.uk/downloads/giblib-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libx11" ,libx11)
+       ("imlib2" ,imlib2)))
+    (home-page "http://linuxbrit.co.uk/software/") ; no real home-page
+    (synopsis "Wrapper library for imlib2")
+    (description
+     "Giblib is a simple library which wraps imlib2's context API, avoiding
+all the context_get/set calls, adds fontstyles to the truetype renderer and
+supplies a generic doubly-linked list and some string functions.")
+    ;; This license removes a clause about X Consortium from the original
+    ;; X11 license.
+    (license (license:x11-style "file://COPYING"
+                                "See 'COPYING' in the distribution."))))