gnu: giflib: Return #t from all phases.
[jackhill/guix/guix.git] / gnu / packages / image.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2017 Ludovic Courtès <ludo@gnu.org>
3 ;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr>
4 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2014, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
7 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
8 ;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net>
9 ;;; Copyright © 2014, 2017 John Darrington <jmd@gnu.org>
10 ;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
11 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
12 ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
13 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
14 ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
15 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
16 ;;; Copyright © 2017 ng0 <ng0@infotropique.org>
17 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
18 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
19 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
20 ;;;
21 ;;; This file is part of GNU Guix.
22 ;;;
23 ;;; GNU Guix is free software; you can redistribute it and/or modify it
24 ;;; under the terms of the GNU General Public License as published by
25 ;;; the Free Software Foundation; either version 3 of the License, or (at
26 ;;; your option) any later version.
27 ;;;
28 ;;; GNU Guix is distributed in the hope that it will be useful, but
29 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
30 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31 ;;; GNU General Public License for more details.
32 ;;;
33 ;;; You should have received a copy of the GNU General Public License
34 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
35
36 (define-module (gnu packages image)
37 #:use-module (gnu packages)
38 #:use-module (gnu packages algebra)
39 #:use-module (gnu packages assembly)
40 #:use-module (gnu packages autotools)
41 #:use-module (gnu packages boost)
42 #:use-module (gnu packages check)
43 #:use-module (gnu packages compression)
44 #:use-module (gnu packages documentation)
45 #:use-module (gnu packages fontutils)
46 ;; To provide gcc@5 and gcc@6, to work around <http://bugs.gnu.org/24703>.
47 #:use-module (gnu packages gcc)
48 #:use-module (gnu packages gettext)
49 #:use-module (gnu packages ghostscript)
50 #:use-module (gnu packages gl)
51 #:use-module (gnu packages glib)
52 #:use-module (gnu packages graphics)
53 #:use-module (gnu packages gtk)
54 #:use-module (gnu packages lua)
55 #:use-module (gnu packages maths)
56 #:use-module (gnu packages mcrypt)
57 #:use-module (gnu packages perl)
58 #:use-module (gnu packages pkg-config)
59 #:use-module (gnu packages python)
60 #:use-module (gnu packages xml)
61 #:use-module (gnu packages xorg)
62 #:use-module (gnu packages qt)
63 #:use-module ((guix licenses) #:prefix license:)
64 #:use-module (guix packages)
65 #:use-module (guix download)
66 #:use-module (guix git-download)
67 #:use-module (guix build-system gnu)
68 #:use-module (guix build-system cmake)
69 #:use-module (guix build-system python)
70 #:use-module (guix build-system r)
71 #:use-module (guix build-system scons)
72 #:use-module (srfi srfi-1))
73
74 (define-public libpng
75 (package
76 (name "libpng")
77 (version "1.6.34")
78 (source (origin
79 (method url-fetch)
80 (uri (list (string-append "mirror://sourceforge/libpng/libpng16/"
81 version "/libpng-" version ".tar.xz")
82 (string-append
83 "ftp://ftp.simplesystems.org/pub/libpng/png/src"
84 "/libpng16/libpng-" version ".tar.xz")
85 (string-append
86 "ftp://ftp.simplesystems.org/pub/libpng/png/src/history"
87 "/libpng16/libpng-" version ".tar.xz")))
88 (sha256
89 (base32
90 "1xjr0v34fyjgnhvaa1zixcpx5yvxcg4zwvfh0fyklfyfj86rc7ig"))))
91 (build-system gnu-build-system)
92
93 ;; libpng.la says "-lz", so propagate it.
94 (propagated-inputs `(("zlib" ,zlib)))
95
96 (synopsis "Library for handling PNG files")
97 (description
98 "Libpng is the official PNG (Portable Network Graphics) reference
99 library. It supports almost all PNG features and is extensible.")
100 (license license:zlib)
101 (home-page "http://www.libpng.org/pub/png/libpng.html")))
102
103 ;; libpng-apng should be updated when the APNG patch is released:
104 ;; <https://bugs.gnu.org/27556>
105 (define-public libpng-apng
106 (package
107 (name "libpng-apng")
108 (version "1.6.28")
109 (source
110 (origin
111 (method url-fetch)
112 (uri (list (string-append "mirror://sourceforge/libpng/libpng16/"
113 version "/libpng-" version ".tar.xz")
114 (string-append
115 "ftp://ftp.simplesystems.org/pub/libpng/png/src"
116 "/libpng16/libpng-" version ".tar.xz")
117 (string-append
118 "ftp://ftp.simplesystems.org/pub/libpng/png/src/history"
119 "/libpng16/libpng-" version ".tar.xz")))
120 (sha256
121 (base32
122 "0ylgyx93hnk38haqrh8prd3ax5ngzwvjqw5cxw7p9nxmwsfyrlyq"))))
123 (build-system gnu-build-system)
124 (arguments
125 `(#:modules ((guix build gnu-build-system)
126 (guix build utils)
127 (srfi srfi-1))
128 #:phases
129 (modify-phases %standard-phases
130 (add-after 'unpack 'patch-apng
131 (lambda* (#:key inputs #:allow-other-keys)
132 (define (apply-patch file)
133 (zero? (system* "patch" "-p1" "--force"
134 "--input" file)))
135 (let ((apng.gz (assoc-ref inputs "apng")))
136 (format #t "Applying APNG patch '~a'...~%"
137 apng.gz)
138 (and
139 (zero?
140 (system (string-append "gunzip < " apng.gz " > the-patch")))
141 (apply-patch "the-patch")))))
142 (add-before 'configure 'no-checks
143 (lambda _
144 (substitute* "Makefile.in"
145 (("^scripts/symbols.chk") "")
146 (("check: scripts/symbols.chk") ""))
147 #t)))))
148 (inputs
149 `(("apng" ,(origin
150 (method url-fetch)
151 (uri
152 (string-append "mirror://sourceforge/libpng-apng/libpng16/"
153 version "/libpng-" version "-apng.patch.gz"))
154 (sha256
155 (base32
156 "0m5nv70n9903x3xzxw9qqc6sgf2rp106ha0x6gix0xf8wcrljaab"))))))
157 (native-inputs
158 `(("libtool" ,libtool)))
159 ;; libpng.la says "-lz", so propagate it.
160 (propagated-inputs
161 `(("zlib" ,zlib)))
162 (synopsis "APNG patch for libpng")
163 (description
164 "APNG (Animated Portable Network Graphics) is an unofficial
165 extension of the APNG (Portable Network Graphics) format.
166 APNG patch provides APNG support to libpng.")
167 (home-page "https://sourceforge.net/projects/libpng-apng/")
168 (license license:zlib)))
169
170 (define-public libpng-1.2
171 (package
172 (inherit libpng)
173 (version "1.2.59")
174 (source
175 (origin
176 (method url-fetch)
177 (uri (list (string-append "mirror://sourceforge/libpng/libpng12/"
178 version "/libpng-" version ".tar.xz")
179 (string-append
180 "ftp://ftp.simplesystems.org/pub/libpng/png/src"
181 "/libpng12/libpng-" version ".tar.xz")
182 (string-append
183 "ftp://ftp.simplesystems.org/pub/libpng/png/src/history"
184 "/libpng12/libpng-" version ".tar.xz")))
185 (sha256
186 (base32
187 "1izw9ybm27llk8531w6h4jp4rk2rxy2s9vil16nwik5dp0amyqxl"))))))
188
189 (define-public r-png
190 (package
191 (name "r-png")
192 (version "0.1-7")
193 (source (origin
194 (method url-fetch)
195 (uri (cran-uri "png" version))
196 (sha256
197 (base32
198 "0g2mcp55lvvpx4kd3mn225mpbxqcq73wy5qx8b4lyf04iybgysg2"))))
199 (build-system r-build-system)
200 (inputs
201 `(("libpng" ,libpng)
202 ("zlib" ,zlib)))
203 (home-page "http://www.rforge.net/png/")
204 (synopsis "Read and write PNG images")
205 (description
206 "This package provides an easy and simple way to read, write and display
207 bitmap images stored in the PNG format. It can read and write both files and
208 in-memory raw vectors.")
209 ;; Any of these GPL versions.
210 (license (list license:gpl2 license:gpl3))))
211
212 (define-public pngcrush
213 (package
214 (name "pngcrush")
215 (version "1.8.13")
216 (source (origin
217 (method url-fetch)
218 (uri (string-append "mirror://sourceforge/pmt/pngcrush/"
219 version "/pngcrush-" version "-nolib.tar.xz"))
220 (sha256 (base32
221 "0l43c59d6v9l0g07z3q3ywhb8xb3vz74llv3mna0izk9bj6aqkiv"))))
222 (build-system gnu-build-system)
223 (arguments
224 '(#:tests? #f ; no check target
225 #:phases
226 (modify-phases %standard-phases
227 (replace 'configure
228 (lambda* (#:key inputs outputs #:allow-other-keys)
229 (substitute* "Makefile"
230 (("^(PNG(INC|LIB) = )/usr/local/" line vardef)
231 (string-append vardef (assoc-ref inputs "libpng") "/"))
232 (("^(Z(INC|LIB) = )/usr/local/" line vardef)
233 (string-append vardef (assoc-ref inputs "zlib") "/"))
234 ;; The Makefile is written by hand and not using $PREFIX
235 (("\\$\\(DESTDIR\\)/usr/")
236 (string-append (assoc-ref outputs "out") "/"))))))))
237 (inputs
238 `(("libpng" ,libpng)
239 ("zlib" , zlib)))
240 (home-page "https://pmt.sourceforge.io/pngcrush")
241 (synopsis "Utility to compress PNG files")
242 (description "pngcrusqh is an optimizer for PNG (Portable Network Graphics)
243 files. It can compress them as much as 40% losslessly.")
244 (license license:zlib)))
245
246 (define-public pngcrunch
247 ;; This package used to be wrongfully name "pngcrunch".
248 (deprecated-package "pngcrunch" pngcrush))
249
250 (define-public libjpeg
251 (package
252 (name "libjpeg")
253 (version "9b")
254 (source (origin
255 (method url-fetch)
256 (uri (string-append "http://www.ijg.org/files/jpegsrc.v"
257 version ".tar.gz"))
258 (sha256 (base32
259 "0lnhpahgdwlrkd41lx6cr90r199f8mc6ydlh7jznj5klvacd63r4"))))
260 (build-system gnu-build-system)
261 (synopsis "Library for handling JPEG files")
262 (description
263 "Libjpeg implements JPEG image encoding, decoding, and transcoding.
264 JPEG is a standardized compression method for full-color and gray-scale
265 images.
266 The included programs provide conversion between the JPEG format and
267 image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats.")
268 (license license:ijg)
269 (home-page "http://www.ijg.org/")))
270
271 (define-public libjpeg-8
272 (package (inherit libjpeg)
273 (version "8d")
274 (source (origin
275 (method url-fetch)
276 (uri (string-append "http://www.ijg.org/files/jpegsrc.v"
277 version ".tar.gz"))
278 (sha256 (base32
279 "1cz0dy05mgxqdgjf52p54yxpyy95rgl30cnazdrfmw7hfca9n0h0"))))))
280
281 (define-public libjxr
282 (package
283 (name "libjxr")
284 (version "1.1")
285 (source (origin
286 ;; We are using the Debian source because CodePlex does not
287 ;; deliver an easily downloadable tarball.
288 (method url-fetch)
289 (uri (string-append "mirror://debian/pool/main/j/jxrlib/jxrlib_"
290 version ".orig.tar.gz"))
291 (sha256
292 (base32
293 "00w3f3cmjsm3fiaxq5mxskmp5rl3mki8psrf9y8s1vqbg237na67"))
294 (patch-flags '("-p1" "--binary"))
295 (patches (search-patches "libjxr-fix-function-signature.patch"
296 "libjxr-fix-typos.patch"))))
297 (build-system gnu-build-system)
298 (arguments '(#:make-flags '("CC=gcc")
299 #:tests? #f ; no check target
300 #:phases
301 (modify-phases %standard-phases
302 (delete 'configure) ; no configure script
303 ;; The upstream makefile does not include an install phase.
304 (replace 'install
305 (lambda* (#:key outputs #:allow-other-keys)
306 (let* ((out (assoc-ref outputs "out"))
307 (bin (string-append out "/bin"))
308 (lib (string-append out "/lib"))
309 (include (string-append out "/include/jxrlib")))
310 (for-each (lambda (file)
311 (install-file file include)
312 (delete-file file))
313 (append
314 '("jxrgluelib/JXRGlue.h"
315 "jxrgluelib/JXRMeta.h"
316 "jxrtestlib/JXRTest.h"
317 "image/sys/windowsmediaphoto.h")
318 (find-files "common/include" "\\.h$")))
319 (for-each (lambda (file)
320 (install-file file lib)
321 (delete-file file))
322 (find-files "." "\\.a$"))
323 (for-each (lambda (file)
324 (install-file file bin)
325 (delete-file file))
326 '("JxrDecApp" "JxrEncApp")))
327 #t)))))
328 (synopsis "Implementation of the JPEG XR standard")
329 (description "JPEG XR is an approved ISO/IEC International standard (its
330 official designation is ISO/IEC 29199-2). This library is an implementation of that standard.")
331 (license
332 (license:non-copyleft
333 "file://Makefile"
334 "See the header of the Makefile in the distribution."))
335 (home-page "https://jxrlib.codeplex.com/")))
336
337 (define-public jpegoptim
338 (package
339 (name "jpegoptim")
340 (version "1.4.4")
341 (source (origin
342 (method url-fetch)
343 (uri (string-append "http://www.kokkonen.net/tjko/src/jpegoptim-"
344 version ".tar.gz"))
345 (sha256 (base32
346 "1cn1i0g1xjdwa12w0ifbnzgb1vqbpr8ji6h05vxksj79vyi3x849"))))
347 (build-system gnu-build-system)
348 (inputs `(("libjpeg" ,libjpeg)))
349 (arguments
350 ;; no tests
351 '(#:tests? #f))
352 (synopsis "Optimize JPEG images")
353 (description
354 "jpegoptim provides lossless optimization (based on optimizing
355 the Huffman tables) and \"lossy\" optimization based on setting
356 maximum quality factor.")
357 (license license:gpl2+)
358 (home-page "http://www.kokkonen.net/tjko/projects.html#jpegoptim")))
359
360 (define-public libicns
361 (package
362 (name "libicns")
363 (version "0.8.1")
364 (source (origin
365 (method url-fetch)
366 (uri (string-append
367 "mirror://sourceforge/icns/"
368 "libicns-" version ".tar.gz"))
369 (sha256
370 (base32
371 "1hjm8lwap7bjyyxsyi94fh5817xzqhk4kb5y0b7mb6675xw10prk"))))
372 (build-system gnu-build-system)
373 (inputs
374 `(("libpng" ,libpng)
375 ("jasper" ,jasper)))
376 (arguments
377 `(#:tests? #t)) ; No tests.
378 (home-page "http://icns.sourceforge.net/")
379 (synopsis "Library for handling Mac OS icns resource files")
380 (description
381 "Libicns is a library for the manipulation of Mac OS IconFamily resource
382 type files (ICNS). @command{icns2png} and @command{png2icns} are provided to
383 convert between PNG and ICNS. @command{icns2png} will extract image files from
384 ICNS files under names like \"Foo_48x48x32.png\" useful for installing for use
385 with .desktop files. Additionally, @command{icontainer2png} is provided for
386 extracting icontainer icon files.")
387 (license (list license:lgpl2.1+ ; libicns
388 license:lgpl2.0+ ; src/apidocs.*
389 license:gpl2+)))) ; icns2png, png2icns, icontainer2png
390
391 (define-public libtiff
392 (package
393 (name "libtiff")
394 (version "4.0.9")
395 (source
396 (origin
397 (method url-fetch)
398 (uri (string-append "http://download.osgeo.org/libtiff/tiff-"
399 version ".tar.gz"))
400 (sha256
401 (base32
402 "1kfg4q01r4mqn7dj63ifhi6pmqzbf4xax6ni6kkk81ri5kndwyvf"))
403 (patches (search-patches "libtiff-CVE-2017-9935.patch"
404 "libtiff-CVE-2017-18013.patch"))))
405 (build-system gnu-build-system)
406 (outputs '("out"
407 "doc")) ;1.3 MiB of HTML documentation
408 (arguments
409 ;; Instead of using --docdir, this package has its own --with-docdir.
410 `(#:configure-flags (list (string-append "--with-docdir="
411 (assoc-ref %outputs "doc")
412 "/share/doc/"
413 ,name "-" ,version))))
414 (inputs `(("zlib" ,zlib)
415 ("libjpeg" ,libjpeg)))
416 (synopsis "Library for handling TIFF files")
417 (description
418 "Libtiff provides support for the Tag Image File Format (TIFF), a format
419 used for storing image data.
420 Included are a library, libtiff, for reading and writing TIFF and a small
421 collection of tools for doing simple manipulations of TIFF images.")
422 (license (license:non-copyleft "file://COPYRIGHT"
423 "See COPYRIGHT in the distribution."))
424 (home-page "http://www.simplesystems.org/libtiff/")))
425
426 (define-public leptonica
427 (package
428 (name "leptonica")
429 (version "1.74.4")
430 (source
431 (origin
432 (method url-fetch)
433 (uri (string-append
434 "https://github.com/DanBloomberg/leptonica/archive/" version
435 ".tar.gz"))
436 (file-name (string-append "leptonica-" version ".tar.gz"))
437 (sha256
438 (base32 "10pw7pwccd0m0fc9rlrr2m41s7j1qvba2wcrav17pw1gclkf34i0"))))
439 (build-system gnu-build-system)
440 (native-inputs
441 `(("gnuplot" ,gnuplot) ;needed for test suite
442 ("autoconf" ,autoconf)
443 ("automake" ,automake)
444 ("libtool" ,libtool)
445 ("pkg-config" ,pkg-config)))
446 (inputs
447 `(("giflib" ,giflib)
448 ("libjpeg" ,libjpeg)
449 ("libpng" ,libpng)
450 ("libtiff" ,libtiff)
451 ("libwebp" ,libwebp)))
452 (propagated-inputs
453 ;; Linking a program with leptonica also requires these.
454 `(("openjpeg" ,openjpeg)
455 ("zlib" ,zlib)))
456 (arguments
457 '(#:phases
458 (modify-phases %standard-phases
459 (add-after 'unpack 'autogen
460 (lambda _
461 (zero? (system* "sh" "autobuild"))))
462 (add-after 'unpack 'patch-reg-wrapper
463 (lambda _
464 (substitute* "prog/reg_wrapper.sh"
465 ((" /bin/sh ")
466 (string-append " " (which "sh") " "))
467 (("which gnuplot")
468 "true")))))))
469 (home-page "http://www.leptonica.com/")
470 (synopsis "Library and tools for image processing and analysis")
471 (description
472 "Leptonica is a C library and set of command-line tools for efficient
473 image processing and image analysis operations. It supports rasterop, affine
474 transformations, binary and grayscale morphology, rank order, and convolution,
475 seedfill and connected components, image transformations combining changes in
476 scale and pixel depth, and pixelwise masking, blending, enhancement, and
477 arithmetic ops.")
478 (license license:bsd-2)))
479
480 (define-public jbig2dec
481 (package
482 (name "jbig2dec")
483 (version "0.14")
484 (source
485 (origin
486 (method url-fetch)
487 (uri (string-append "http://downloads.ghostscript.com/public/" name "/"
488 name "-" version ".tar.gz"))
489 (sha256
490 (base32 "0k01hp0q4275fj4rbr1gy64svfraw5w7wvwl08yjhvsnpb1rid11"))
491 (patches (search-patches "jbig2dec-ignore-testtest.patch"))))
492 (build-system gnu-build-system)
493 (synopsis "Decoder of the JBIG2 image compression format")
494 (description
495 "JBIG2 is designed for lossy or lossless encoding of 'bilevel' (1-bit
496 monochrome) images at moderately high resolution, and in particular scanned
497 paper documents. In this domain it is very efficient, offering compression
498 ratios on the order of 100:1.
499
500 This is a decoder only implementation, and currently is in the alpha
501 stage, meaning it doesn't completely work yet. However, it is
502 maintaining parity with available encoders, so it is useful for real
503 work.")
504 (home-page "http://www.ghostscript.com/jbig2dec.html")
505 (license license:gpl2+)))
506
507 (define-public openjpeg
508 (package
509 (name "openjpeg")
510 (version "2.3.0")
511 (source
512 (origin
513 (method url-fetch)
514 (uri
515 (string-append "https://github.com/uclouvain/openjpeg/archive/v"
516 version ".tar.gz"))
517 (file-name (string-append name "-" version ".tar.gz"))
518 (sha256
519 (base32
520 "06npqzkg20avnygdwaqpap91r7qpdqgrn39adj2bl8v0pg0qgirx"))))
521 (build-system cmake-build-system)
522 (arguments
523 ;; Trying to run `$ make check' results in a no rule fault.
524 '(#:tests? #f))
525 (inputs
526 `(("lcms" ,lcms)
527 ("libpng" ,libpng)
528 ("libtiff" ,libtiff)
529 ("zlib" ,zlib)))
530 (synopsis "JPEG 2000 codec")
531 (description
532 "The OpenJPEG library is a JPEG 2000 codec written in C. It has
533 been developed in order to promote the use of JPEG 2000, the new
534 still-image compression standard from the Joint Photographic Experts
535 Group (JPEG).
536
537 In addition to the basic codec, various other features are under
538 development, among them the JP2 and MJ2 (Motion JPEG 2000) file formats,
539 an indexing tool useful for the JPIP protocol, JPWL-tools for
540 error-resilience, a Java-viewer for j2k-images, ...")
541 (home-page "https://github.com/uclouvain/openjpeg")
542 (license license:bsd-2)))
543
544 (define-public openjpeg-1
545 (package (inherit openjpeg)
546 (name "openjpeg")
547 (version "1.5.2")
548 (source
549 (origin
550 (method url-fetch)
551 (uri
552 (string-append "mirror://sourceforge/openjpeg.mirror/" version "/"
553 name "-" version ".tar.gz"))
554 (sha256
555 (base32 "11waq9w215zvzxrpv40afyd18qf79mxc28fda80bm3ax98cpppqm"))))))
556
557 (define-public giflib
558 (package
559 (name "giflib")
560 (version "5.1.4")
561 (source (origin
562 (method url-fetch)
563 (uri (string-append "mirror://sourceforge/giflib/giflib-"
564 version ".tar.bz2"))
565 (sha256
566 (base32
567 "1md83dip8rf29y40cm5r7nn19705f54iraz6545zhwa6y8zyq9yz"))))
568 (build-system gnu-build-system)
569 (outputs '("bin" ; utility programs
570 "out")) ; library
571 (inputs `(("libx11" ,libx11)
572 ("libice" ,libice)
573 ("libsm" ,libsm)
574 ("perl" ,perl)))
575 (arguments
576 `(#:phases
577 (modify-phases %standard-phases
578 (add-after 'unpack 'disable-html-doc-gen
579 (lambda _
580 (substitute* "doc/Makefile.in"
581 (("^all: allhtml manpages") ""))
582 #t))
583 (add-after 'install 'install-manpages
584 (lambda* (#:key outputs #:allow-other-keys)
585 (let* ((bin (assoc-ref outputs "bin"))
586 (man1dir (string-append bin "/share/man/man1")))
587 (mkdir-p man1dir)
588 (for-each (lambda (file)
589 (let ((base (basename file)))
590 (format #t "installing `~a' to `~a'~%"
591 base man1dir)
592 (copy-file file
593 (string-append
594 man1dir "/" base))))
595 (find-files "doc" "\\.1"))
596 #t))))))
597 (synopsis "Tools and library for working with GIF images")
598 (description
599 "GIFLIB is a library for reading and writing GIF images. It is API and
600 ABI compatible with libungif which was in wide use while the LZW compression
601 algorithm was patented. Tools are also included to convert, manipulate,
602 compose, and analyze GIF images.")
603 (home-page "http://giflib.sourceforge.net/")
604 (license license:x11)))
605
606 (define-public libungif
607 (package
608 (name "libungif")
609 (version "4.1.4")
610 (source (origin
611 (method url-fetch)
612 (uri (string-append "mirror://sourceforge/giflib/libungif-4.x/"
613 "libungif-" version "/libungif-"
614 version ".tar.bz2"))
615 (sha256
616 (base32
617 "0cnksimmmjngdrys302ik1385sg1sj4i0gxivzldhgwd46n7x2kh"))))
618 (build-system gnu-build-system)
619 (inputs `(("perl" ,perl))) ;package ships some perl tools
620 (home-page "http://giflib.sourceforge.net/")
621 (synopsis "GIF decompression library")
622 (description
623 "libungif is the old GIF decompression library by the GIFLIB project.")
624 (license license:expat)))
625
626 (define-public imlib2
627 (package
628 (name "imlib2")
629 (version "1.5.0")
630 (source (origin
631 (method url-fetch)
632 (uri (string-append
633 "mirror://sourceforge/enlightenment/imlib2-src/" version
634 "/imlib2-" version ".tar.bz2"))
635 (sha256
636 (base32
637 "0kg28b5wp886hiy12v7abdybrvlymb7g3nvg0ysn2y8h883s5w8m"))))
638 (build-system gnu-build-system)
639 (native-inputs
640 `(("pkgconfig" ,pkg-config)))
641 (inputs
642 `(("libx11" ,libx11)
643 ("libxext" ,libxext)
644 ("freetype" ,freetype)
645 ("libjpeg" ,libjpeg)
646 ("libpng" ,libpng)
647 ("libtiff" ,libtiff)
648 ("giflib" ,giflib)
649 ("bzip2" ,bzip2)))
650 (home-page "https://sourceforge.net/projects/enlightenment/")
651 (synopsis
652 "Loading, saving, rendering and manipulating image files")
653 (description
654 "Imlib2 is a library that does image file loading and saving as well as
655 rendering, manipulation, arbitrary polygon support, etc.
656
657 It does ALL of these operations FAST. Imlib2 also tries to be highly
658 intelligent about doing them, so writing naive programs can be done easily,
659 without sacrificing speed.
660
661 This is a complete rewrite over the Imlib 1.x series. The architecture is
662 more modular, simple, and flexible.")
663 (license license:imlib2)))
664
665 (define-public giblib
666 (package
667 (name "giblib")
668 (version "1.2.4")
669 (source (origin
670 (method url-fetch)
671 (uri (list
672 (string-append
673 "http://linuxbrit.co.uk/downloads/giblib-"
674 version ".tar.gz")
675 (string-append
676 "https://sourceforge.net/projects/slackbuildsdirectlinks/"
677 "files/giblib/giblib-" version ".tar.gz")))
678 (sha256
679 (base32
680 "1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp"))))
681 (build-system gnu-build-system)
682 (inputs
683 `(("libx11" ,libx11)
684 ("imlib2" ,imlib2)))
685 (home-page "http://linuxbrit.co.uk/software/") ; no real home-page
686 (synopsis "Wrapper library for imlib2")
687 (description
688 "Giblib is a simple library which wraps imlib2's context API, avoiding
689 all the context_get/set calls, adds fontstyles to the truetype renderer and
690 supplies a generic doubly-linked list and some string functions.")
691 ;; This license removes a clause about X Consortium from the original
692 ;; X11 license.
693 (license (license:x11-style "file://COPYING"
694 "See 'COPYING' in the distribution."))))
695
696 (define-public freeimage
697 (package
698 (name "freeimage")
699 (version "3.17.0")
700 (source (origin
701 (method url-fetch)
702 (uri (string-append
703 "mirror://sourceforge/freeimage/Source%20Distribution/"
704 version "/FreeImage"
705 (string-concatenate (string-split version #\.))
706 ".zip"))
707 (sha256
708 (base32
709 "12bz57asdcfsz3zr9i9nska0fb6h3z2aizy412qjqkixkginbz7v"))
710 (patches (search-patches "freeimage-CVE-2015-0852.patch"
711 "freeimage-CVE-2016-5684.patch"
712 "freeimage-fix-build-with-gcc-5.patch"))))
713 (build-system gnu-build-system)
714 (arguments
715 '(#:phases
716 (modify-phases %standard-phases
717 (delete 'configure)
718 (add-before 'build 'patch-makefile
719 (lambda* (#:key outputs #:allow-other-keys)
720 (substitute* "Makefile.gnu"
721 (("/usr") (assoc-ref outputs "out"))
722 (("-o root -g root") ""))
723 #t)))
724 #:make-flags '("CC=gcc")
725 #:tests? #f)) ; no check target
726 (native-inputs
727 `(("unzip" ,unzip)))
728 ;; Fails to build on MIPS due to assembly code in the source.
729 (supported-systems (delete "mips64el-linux" %supported-systems))
730 (synopsis "Library for handling popular graphics image formats")
731 (description
732 "FreeImage is a library for developers who would like to support popular
733 graphics image formats like PNG, BMP, JPEG, TIFF and others.")
734 (license license:gpl2+)
735 (home-page "http://freeimage.sourceforge.net")))
736
737 (define-public vigra
738 (package
739 (name "vigra")
740 (version "1.11.1")
741 (source
742 (origin
743 (method url-fetch)
744 (uri (string-append "https://github.com/ukoethe/vigra/releases/download/"
745 "Version-" (string-join (string-split version #\.) "-")
746 "/vigra-" version "-src.tar.gz"))
747 (sha256 (base32
748 "1bqs8vx5i1bzamvv563i24gx2xxdidqyxh9iaj46mbznhc84wmm5"))))
749 (build-system cmake-build-system)
750 (inputs
751 `(("boost" ,boost)
752 ("fftw" ,fftw)
753 ("fftwf" ,fftwf)
754 ("hdf5" ,hdf5)
755 ("ilmbase" ,ilmbase) ; propagated by openexr, but needed explicitly
756 ; to create a configure-flag
757 ("libjpeg" ,libjpeg)
758 ("libpng" ,libpng)
759 ("libtiff" ,libtiff)
760 ("openexr" ,openexr)
761 ("python" ,python-2) ; print syntax
762 ("python2-numpy" ,python2-numpy)
763 ("zlib" ,zlib)))
764 (native-inputs
765 `(("doxygen" ,doxygen)
766 ("python2-nose" ,python2-nose)
767 ("python2-sphinx" ,python2-sphinx)))
768 (arguments
769 `(#:test-target "check"
770 #:parallel-build? #f ; parallel builds trigger an ICE
771 #:configure-flags
772 (list "-Wno-dev" ; suppress developer mode with lots of warnings
773 (string-append "-DVIGRANUMPY_INSTALL_DIR="
774 (assoc-ref %outputs "out")
775 "/lib/python2.7/site-packages")
776 ;; OpenEXR is not enabled by default.
777 "-DWITH_OPENEXR=1"
778 ;; Fix rounding error on 32-bit machines
779 "-DCMAKE_C_FLAGS=-ffloat-store"
780 ;; The header files of ilmbase are not found when included
781 ;; by the header files of openexr, and an explicit flag
782 ;; needs to be set.
783 (string-append "-DCMAKE_CXX_FLAGS=-I"
784 (assoc-ref %build-inputs "ilmbase")
785 "/include/OpenEXR"
786 " -ffloat-store"))))
787 (synopsis "Computer vision library")
788 (description
789 "VIGRA stands for Vision with Generic Algorithms. It is an image
790 processing and analysis library that puts its main emphasis on customizable
791 algorithms and data structures. It is particularly strong for
792 multi-dimensional image processing.")
793 (license license:expat)
794 (home-page "https://ukoethe.github.io/vigra/")))
795
796 (define-public libwebp
797 (package
798 (name "libwebp")
799 (version "0.6.1")
800 (source
801 (origin
802 (method url-fetch)
803 (uri (string-append
804 "http://downloads.webmproject.org/releases/webp/libwebp-" version
805 ".tar.gz"))
806 (sha256
807 (base32
808 "1ayq2zq0zbgf5yizbm32zh7p1vb8kibw74am6am1n5cz5mw3ql06"))))
809 (build-system gnu-build-system)
810 (inputs
811 `(("freeglut" ,freeglut)
812 ("giflib" ,giflib)
813 ("libjpeg" ,libjpeg)
814 ("libpng" ,libpng)
815 ("libtiff" ,libtiff)))
816 (arguments
817 '(#:configure-flags '("--enable-libwebpmux"
818 "--enable-libwebpdemux"
819 "--enable-libwebpdecoder")))
820 (home-page "https://developers.google.com/speed/webp/")
821 (synopsis "Lossless and lossy image compression")
822 (description
823 "WebP is a new image format that provides lossless and lossy compression
824 for images. WebP lossless images are 26% smaller in size compared to
825 PNGs. WebP lossy images are 25-34% smaller in size compared to JPEG images at
826 equivalent SSIM index. WebP supports lossless transparency (also known as
827 alpha channel) with just 22% additional bytes. Transparency is also supported
828 with lossy compression and typically provides 3x smaller file sizes compared
829 to PNG when lossy compression is acceptable for the red/green/blue color
830 channels.")
831 (license license:bsd-3)))
832
833 (define-public libmng
834 (package
835 (name "libmng")
836 (version "2.0.3")
837 (source (origin
838 (method url-fetch)
839 (uri (string-append "mirror://sourceforge/libmng/libmng-devel/"
840 version "/" name "-" version ".tar.xz"))
841 (sha256
842 (base32
843 "1lvxnpds0vcf0lil6ia2036ghqlbl740c4d2sz0q5g6l93fjyija"))))
844 (build-system gnu-build-system)
845 (propagated-inputs
846 ;; These are all in the 'Libs.private' field of libmng.pc.
847 `(("lcms" ,lcms)
848 ("libjpeg" ,libjpeg)
849 ("zlib" ,zlib)))
850 (home-page "http://www.libmng.com/")
851 (synopsis "Library for handling MNG files")
852 (description
853 "Libmng is the MNG (Multiple-image Network Graphics) reference library.")
854 (license license:bsd-3)))
855
856 (define-public exiv2
857 (package
858 (name "exiv2")
859 (version "0.26")
860 (source (origin
861 (method url-fetch)
862 (uri (list (string-append "http://www.exiv2.org/builds/exiv2-"
863 version "-trunk.tar.gz")
864 (string-append "http://www.exiv2.org/exiv2-"
865 version ".tar.gz")
866 (string-append "https://fossies.org/linux/misc/exiv2-"
867 version ".tar.gz")))
868 (patches (search-patches "exiv2-CVE-2017-14860.patch"
869 "exiv2-CVE-2017-14859-14862-14864.patch"))
870 (sha256
871 (base32
872 "1yza317qxd8yshvqnay164imm0ks7cvij8y8j86p1gqi1153qpn7"))))
873 (build-system gnu-build-system)
874 (arguments '(#:tests? #f)) ; no `check' target
875 (propagated-inputs
876 `(("expat" ,expat)
877 ("zlib" ,zlib)))
878 (native-inputs
879 `(("intltool" ,intltool)))
880 (home-page "http://www.exiv2.org/")
881 (synopsis "Library and command-line utility to manage image metadata")
882 (description
883 "Exiv2 is a C++ library and a command line utility to manage image
884 metadata. It provides fast and easy read and write access to the Exif, IPTC
885 and XMP metadata of images in various formats.")
886
887 ;; Files under `xmpsdk' are a copy of Adobe's XMP SDK, licensed under the
888 ;; 3-clause BSD license: <http://www.adobe.com/devnet/xmp/sdk/eula.html>.
889 ;; The core is GPLv2+:
890 ;; <https://launchpad.net/ubuntu/precise/+source/exiv2/+copyright>.
891 (license license:gpl2+)))
892
893 (define-public devil
894 (package
895 (name "devil")
896 (version "1.8.0")
897 (source (origin
898 (method url-fetch)
899 (uri (string-append "http://downloads.sourceforge.net/openil/"
900 "DevIL-" version ".tar.gz"))
901 (sha256
902 (base32
903 "02dpzvi493r09c9hfjnk54nladl3qw55iqkkg18g12fxwwz9fx80"))))
904 (build-system cmake-build-system)
905 (arguments
906 '(;; XXX: Not supported in the released CMakeLists.txt.
907 ;; Enable this for > 1.8.0.
908 #:tests? #f
909 #:phases
910 (modify-phases %standard-phases
911 (add-before 'configure 'change-directory
912 (lambda _ (chdir "DevIL") #t)))))
913 (native-inputs
914 `(("pkg-config" ,pkg-config)))
915 (inputs
916 `(("lcms" ,lcms)
917 ("libjpeg" ,libjpeg-turbo)
918 ("libmng" ,libmng)
919 ("libpng" ,libpng)
920 ("libtiff" ,libtiff)
921 ("openexr" ,openexr)
922 ("zlib" ,zlib)))
923 (synopsis "Library for manipulating many image formats")
924 (description "Developer's Image Library (DevIL) is a library to develop
925 applications with support for many types of images. DevIL can load, save,
926 convert, manipulate, filter and display a wide variety of image formats.")
927 (home-page "http://openil.sourceforge.net")
928 (license license:lgpl2.1+)))
929
930 (define-public jasper
931 (package
932 (name "jasper")
933 (version "2.0.14")
934 (source (origin
935 (method url-fetch)
936 (uri (string-append "https://github.com/mdadams/jasper/archive/"
937 "version-" version ".tar.gz"))
938 (file-name (string-append name "-" version ".tar.gz"))
939 (sha256
940 (base32
941 "0yx9y5y0g6jv142vnqp50j3k8k5yqznz3smrblv192wgfbm6w9l5"))))
942 (build-system cmake-build-system)
943 (inputs `(("libjpeg" ,libjpeg)))
944 (synopsis "JPEG-2000 library")
945 (description "The JasPer Project is an initiative to provide a reference
946 implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e.,
947 ISO/IEC 15444-1).")
948 (home-page "https://www.ece.uvic.ca/~frodo/jasper/")
949 (license (license:x11-style "file://LICENSE"))))
950
951 (define-public zimg
952 (package
953 (name "zimg")
954 (version "2.5")
955 (source
956 (origin
957 (method url-fetch)
958 (uri (string-append "https://github.com/sekrit-twc/zimg/archive/"
959 "release-" version ".tar.gz"))
960 (file-name (string-append name "-" version ".tar.gz"))
961 (sha256
962 (base32
963 "0kbq2dy659645fmgxpzg38b6y6x82kwkydhc380kdkaikv2brcjh"))))
964 (build-system gnu-build-system)
965 (native-inputs
966 `(("autoconf" ,autoconf)
967 ("automake" ,automake)
968 ("libtool" ,libtool)))
969 (arguments
970 '(#:phases
971 (modify-phases %standard-phases
972 (add-after 'unpack 'autogen
973 (lambda _
974 (zero? (system* "sh" "autogen.sh")))))))
975 (synopsis "Scaling, colorspace conversion, and dithering library")
976 (description "Zimg implements the commonly required image processing basics
977 of scaling, colorspace conversion, and depth conversion. A simple API enables
978 conversion between any supported formats to operate with minimal knowledge from
979 the programmer.")
980 (home-page "https://github.com/sekrit-twc/zimg")
981 ;; test/extra/ contains musl-libm,
982 ;; which is MIT/expat licensed, but only used for tests
983 (license (license:fsf-free "file://COPYING")))) ;WTFPL version 2
984
985 (define-public perceptualdiff
986 (package
987 (name "perceptualdiff")
988 (version "1.3")
989 (source
990 (origin
991 (method url-fetch)
992 (uri (string-append "https://github.com/myint/perceptualdiff/archive/v"
993 version ".tar.gz"))
994 (file-name (string-append name "-" version ".tar.gz"))
995 (sha256
996 (base32
997 "0zl6xmp971fffg7fzcz2fbgxg5x2w7l8qa65c008i4kbkc9016ps"))))
998 (build-system cmake-build-system)
999 (inputs `(("freeimage" ,freeimage)))
1000 (arguments
1001 '(#:phases (modify-phases %standard-phases
1002 (add-after 'unpack 'fix-tests
1003 ;; cmake-build-system uses a build/ directory outside
1004 ;; of the source tree, one level higher than expected
1005 (lambda _
1006 (substitute* "test/run_tests.bash"
1007 (("../build") "../../build")))))))
1008 (home-page "https://github.com/myint/perceptualdiff")
1009 (synopsis "Perceptual image comparison utility")
1010 (description "PerceptualDiff visually compares two images to determine
1011 whether they look alike. It uses a computational model of the human visual
1012 system to detect similarities. This allows it too see beyond irrelevant
1013 differences in file encoding, image quality, and other small variations.")
1014 (license license:gpl2+)))
1015
1016 (define-public steghide
1017 (package
1018 (name "steghide")
1019 (version "0.5.1")
1020 (source (origin
1021 (method url-fetch)
1022 (uri (string-append "mirror://sourceforge/steghide/steghide/"
1023 version "/steghide-" version ".tar.bz2"))
1024 (sha256
1025 (base32
1026 "18bxlhbdc3zsmxj84i417xjh0q28kv26q449k23n0a72ldwziix2"))
1027 (patches (list (search-patch "steghide-fixes.patch")))))
1028 (build-system gnu-build-system)
1029 (native-inputs
1030 `(("gettext" ,gettext-minimal)
1031 ("libtool" ,libtool)
1032 ("perl" ,perl))) ;for tests
1033 (inputs
1034 `(("libmhash" ,libmhash)
1035 ("libmcrypt" ,libmcrypt)
1036 ("libjpeg" ,libjpeg)
1037 ("zlib" ,zlib)))
1038 (arguments
1039 `(#:make-flags '("CXXFLAGS=-fpermissive") ;required for MHashPP.cc
1040
1041 #:phases (modify-phases %standard-phases
1042 (add-before 'configure 'set-perl-search-path
1043 (lambda _
1044 ;; Work around "dotless @INC" build failure.
1045 (setenv "PERL5LIB"
1046 (string-append (getcwd) "/tests:"
1047 (getenv "PERL5LIB")))
1048 #t)))))
1049 (home-page "http://steghide.sourceforge.net")
1050 (synopsis "Image and audio steganography")
1051 (description
1052 "Steghide is a program to hide data in various kinds of image and audio
1053 files (known as @dfn{steganography}). Neither color nor sample frequencies are
1054 changed, making the embedding resistant against first-order statistical tests.")
1055 (license license:gpl2+)))
1056
1057 (define-public stb-image-for-extempore
1058 (let ((revision "1")
1059 (commit "152a250a702bf28951bb0220d63bc0c99830c498"))
1060 (package
1061 (name "stb-image-for-extempore")
1062 (version (string-append "0-" revision "." (string-take commit 9)))
1063 (source
1064 (origin (method git-fetch)
1065 (uri (git-reference
1066 (url "https://github.com/extemporelang/stb.git")
1067 (commit commit)))
1068 (sha256
1069 (base32
1070 "0y0aa20pj9311x2ii06zg8xs34idg14hfgldqc5ymizc6cf1qiqv"))
1071 (file-name (string-append name "-" version "-checkout"))))
1072 (build-system cmake-build-system)
1073 (arguments `(#:tests? #f)) ; no tests included
1074 ;; Extempore refuses to build on architectures other than x86_64
1075 (supported-systems '("x86_64-linux"))
1076 (home-page "https://github.com/extemporelang/stb")
1077 (synopsis "Image library for Extempore")
1078 (description
1079 "This package is a collection of assorted single-file libraries. Of
1080 all included libraries only the image loading and decoding library is
1081 installed as @code{stb_image}.")
1082 (license license:public-domain))))
1083
1084 (define-public optipng
1085 (package
1086 (name "optipng")
1087 (version "0.7.7")
1088 (source
1089 (origin
1090 (method url-fetch)
1091 (uri (string-append "http://prdownloads.sourceforge.net/optipng/optipng-"
1092 version ".tar.gz"))
1093 (sha256
1094 (base32
1095 "0lj4clb851fzpaq446wgj0sfy922zs5l5misbpwv6w7qrqrz4cjg"))))
1096 (build-system gnu-build-system)
1097 (inputs
1098 `(("zlib" ,zlib)))
1099 (arguments
1100 '(#:phases
1101 (modify-phases %standard-phases
1102 (replace 'configure
1103 (lambda* (#:key outputs #:allow-other-keys)
1104 ;; configure script doesn't accept arguments CONFIG_SHELL and SHELL
1105 (invoke "sh" "configure"
1106 (string-append "--prefix=" (assoc-ref outputs "out")))
1107 #t)))))
1108 (synopsis "Optimizer that recompresses PNG image files to a smaller size")
1109 (description "OptiPNG is a PNG optimizer that recompresses image
1110 files to a smaller size, without losing any information. This program
1111 also converts external formats (BMP, GIF, PNM and TIFF) to optimized
1112 PNG, and performs PNG integrity checks and corrections.")
1113 (home-page "http://optipng.sourceforge.net/")
1114 (license license:zlib)))
1115
1116 (define-public libjpeg-turbo
1117 (package
1118 (name "libjpeg-turbo")
1119 (version "1.5.3")
1120 (source (origin
1121 (method url-fetch)
1122 (uri (string-append "mirror://sourceforge/" name "/" version "/"
1123 name "-" version ".tar.gz"))
1124 (sha256
1125 (base32
1126 "08r5b5mywwrxv4axvq80dm31cklz81grczlzlxr2xqa6pgi90j5j"))))
1127 (build-system gnu-build-system)
1128 (native-inputs
1129 `(("nasm" ,nasm)))
1130 (arguments
1131 '(#:test-target "test"
1132 #:configure-flags (list "--with-build-date=1970-01-01")))
1133 (home-page "http://www.libjpeg-turbo.org/")
1134 (synopsis "SIMD-accelerated JPEG image handling library")
1135 (description "libjpeg-turbo is a JPEG image codec that accelerates baseline
1136 JPEG compression and decompression using SIMD instructions: MMX on x86, SSE2 on
1137 x86-64, NEON on ARM, and AltiVec on PowerPC processors. Even on other systems,
1138 its highly-optimized Huffman coding routines allow it to outperform libjpeg by
1139 a significant amount.
1140 libjpeg-turbo implements both the traditional libjpeg API and the less powerful
1141 but more straightforward TurboJPEG API, and provides a full-featured Java
1142 interface. It supports color space extensions that allow it to compress from
1143 and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.).")
1144 (license (list license:bsd-3 ; jsimd*.[ch] and most of simd/
1145 license:ijg)))) ; the rest
1146
1147 (define-public niftilib
1148 (package
1149 (name "niftilib")
1150 (version "2.0.0")
1151 (source (origin
1152 (method url-fetch)
1153 (uri (list (string-append "mirror://sourceforge/niftilib/"
1154 "nifticlib/nifticlib_"
1155 (string-join (string-split version #\.) "_")
1156 "/nifticlib-" version ".tar.gz")))
1157 (sha256
1158 (base32 "123z9bwzgin5y8gi5ni8j217k7n683whjsvg0lrpii9flgk8isd3"))))
1159 (build-system gnu-build-system)
1160 (arguments
1161 '(#:tests? #f ; there is no test target
1162 #:parallel-build? #f ; not supported
1163 #:make-flags
1164 (list "SHELL=bash"
1165 (string-append "ZLIB_INC="
1166 (assoc-ref %build-inputs "zlib") "/include")
1167 ;; Append "-fPIC" to CFLAGS.
1168 (string-append "CFLAGS="
1169 "-Wall -ansi -pedantic -fPIC"))
1170 #:phases
1171 (modify-phases %standard-phases
1172 (replace 'install
1173 (lambda* (#:key outputs #:allow-other-keys)
1174 (let ((out (assoc-ref outputs "out")))
1175 (for-each
1176 (lambda (dir)
1177 (copy-recursively dir (string-append out "/" dir)))
1178 '("bin" "lib" "include")))
1179 #t))
1180 (delete 'configure))))
1181 (inputs
1182 `(("zlib" ,zlib)))
1183 (synopsis "Library for reading and writing files in the nifti-1 format")
1184 (description "Niftilib is a set of i/o libraries for reading and writing
1185 files in the nifti-1 data format - a binary file format for storing
1186 medical image data, e.g. magnetic resonance image (MRI) and functional MRI
1187 (fMRI) brain images.")
1188 (home-page "http://niftilib.sourceforge.net")
1189 (license license:public-domain)))
1190
1191 (define-public gpick
1192 (package
1193 (name "gpick")
1194 (version "0.2.5")
1195 (source (origin
1196 (method url-fetch)
1197 (uri (string-append "https://github.com/thezbyg/gpick/archive/"
1198 name "-" version ".tar.gz"))
1199 (sha256
1200 (base32
1201 "0mxvxk15xhk2i5vfavjhnkk4j3bnii0gpf8di14rlbpq070hd5rs"))))
1202 (build-system scons-build-system)
1203 (native-inputs
1204 `(("boost" ,boost)
1205 ("gettext" ,gnu-gettext)
1206 ("pkg-config" ,pkg-config)))
1207 (inputs
1208 `(("expat" ,expat)
1209 ("gtk2" ,gtk+-2)
1210 ("lua" ,lua-5.2)))
1211 (arguments
1212 `(#:tests? #f
1213 #:scons ,scons-python2
1214 #:scons-flags (list (string-append "DESTDIR=" %output))
1215 #:phases
1216 (modify-phases %standard-phases
1217 (add-before 'build 'fix-lua-reference
1218 (lambda _
1219 (substitute* "SConscript"
1220 (("lua5.2") "lua-5.2"))
1221 #t)))))
1222 (home-page "http://www.gpick.org/")
1223 (synopsis "Color picker")
1224 (description "Gpick is an advanced color picker and palette editing tool.")
1225 (license license:bsd-3)))
1226
1227 (define-public libiptcdata
1228 (package
1229 (name "libiptcdata")
1230 (version "1.0.4")
1231 (source (origin
1232 (method url-fetch)
1233 (uri (string-append "mirror://sourceforge/" name "/" name "/"
1234 version "/" name "-" version ".tar.gz"))
1235 (sha256
1236 (base32
1237 "03pfvkmmx762iydq0q207x2028d275pbdysfsgpmrr0ywy63pxkr"))))
1238 (build-system gnu-build-system)
1239 (home-page "http://libiptcdata.sourceforge.net/")
1240 (synopsis "IPTC metadata manipulation library")
1241 (description "Libiptcdata is a C library for manipulating the International
1242 Press Telecommunications Council (IPTC) metadata stored within multimedia files
1243 such as images. This metadata can include captions and keywords, often used by
1244 popular photo management applications. The library provides routines for
1245 parsing, viewing, modifying, and saving this metadata.")
1246 (license license:lgpl2.0+)))
1247
1248 (define-public flameshot
1249 (package
1250 (name "flameshot")
1251 (version "0.5.1")
1252 (source
1253 (origin
1254 (method url-fetch)
1255 (uri (string-append "https://github.com/lupoDharkael/flameshot/archive/"
1256 "v" version ".tar.gz"))
1257 (file-name (string-append name "-" version ".tar.gz"))
1258 (sha256
1259 (base32
1260 "0kp451bqgssvg8n3sg60s3fifplm9l5kxiij0yxkl864p2mhw8im"))))
1261 (build-system gnu-build-system)
1262 (native-inputs
1263 `(("qttools" ,qttools)))
1264 (inputs
1265 `(("qtbase" ,qtbase)))
1266 (arguments
1267 `(#:tests? #f ; no tests
1268 #:phases
1269 (modify-phases %standard-phases
1270 (replace 'configure
1271 (lambda* (#:key outputs #:allow-other-keys)
1272 (invoke "qmake"
1273 "CONFIG+=packaging"
1274 (string-append "BASEDIR=" (assoc-ref outputs "out"))
1275 "PREFIX=/"))))))
1276 (home-page "https://github.com/lupoDharkael/flameshot")
1277 (synopsis "Powerful yet simple to use screenshot software")
1278 (description "Flameshot is a screenshot program.
1279 Features:
1280
1281 @itemize
1282 @item Customizable appearance.
1283 @item Easy to use.
1284 @item In-app screenshot edition.
1285 @item DBus interface.
1286 @item Upload to Imgur.
1287 @end itemize\n")
1288 (license license:gpl3+)))
1289
1290 (define-public r-jpeg
1291 (package
1292 (name "r-jpeg")
1293 (version "0.1-8")
1294 (source
1295 (origin
1296 (method url-fetch)
1297 (uri (cran-uri "jpeg" version))
1298 (sha256
1299 (base32
1300 "05hawv5qcb82ljc1l2nchx1wah8mq2k2kfkhpzyww554ngzbwcnh"))))
1301 (build-system r-build-system)
1302 (inputs `(("libjpeg" ,libjpeg)))
1303 (home-page "http://www.rforge.net/jpeg/")
1304 (synopsis "Read and write JPEG images with R")
1305 (description "This package provides a way to read, write and display bitmap
1306 images stored in the JPEG format with R. It can read and write both files and
1307 in-memory raw vectors.")
1308 (license license:gpl2+)))