Subject: [bug#31494] [PATCH] gnu: gifsicle: New variable.

From: Pierre Neidhardt <[email-masked]>
Date: Sun, 20 May 2018 14:09:13 +0200

* gnu/packages/image.scm (gifsicle): New variable.
---
 gnu/packages/image.scm | 52 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index bbfd621a9..174e47bca 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2017 Hartmut Goebel <[email-masked]>
 ;;; Copyright © 2017 Julien Lepiller <[email-masked]>
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <[email-masked]>
+;;; Copyright © 2018 Pierre Neidhardt <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1366,3 +1367,54 @@ Features:
 images stored in the JPEG format with R.  It can read and write both files and
 in-memory raw vectors.")
    (license license:gpl2+)))
+
+(define-public gifsicle
+  (package
+   (name "gifsicle")
+   (version "1.91")
+   (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.lcdf.org/gifsicle/gifsicle-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "00586z1yz86qcblgmf16yly39n4lkjrscl52hvfxqk14m81fckha"))))
+   (build-system gnu-build-system)
+   (arguments
+    '(#:phases
+      (modify-phases %standard-phases
+        (add-before 'check 'patch-tests
+          (lambda _
+            (substitute* "test/testie"
+              (("/usr/bin/perl")
+               (which "perl"))
+              (("/bin/sh")
+               (which "sh"))
+              (("/bin/rm")
+               (which "rm"))))))))
+   (native-inputs `(("perl" ,perl))) ; Only for tests.
+   (inputs `(("libx11" ,libx11)))
+   (home-page "http://www.lcdf.org/gifsicle/")
+   (synopsis "Edit GIF images and animations")
+   (description "Gifsicle is a commandline GIF swiss-army knife.  Features:
+@itemize
+@item Batch mode for changing GIFs in place.
+@item Prints detailed information about GIFs, including comments.
+@item Control over interlacing, comments, looping, transparency...
+@item Creates well-behaved GIFs: removes redundant colors, only uses local color
+tables if it absolutely has to (local color tables waste space and can cause
+viewing artifacts), etc.
+@item It can shrink colormaps and change images to use the Web-safe palette (or
+any colormap you choose).
+@item Optimize your animations!  This stores only the changed portion of each
+frame, and can radically shrink your GIFs.  You can also use transparency to
+make them even smaller.  Gifsicle's optimizer is pretty powerful, and usually
+reduces animations to within a couple bytes of the best commercial optimizers.
+@item Unoptimizing animations, which makes them easier to edit.
+@end itemize
+
+Two other programs are included with Gifsicle: @code{gifview} is a lightweight
+animated-GIF viewer which can show animations as slideshows or in real time,
+and @code{gifdiff} compares two GIFs for identical visual appearance.")
+   (license license:gpl2+)))
-- 
2.17.0