Merge branch 'master' into staging
[jackhill/guix/guix.git] / gnu / packages / image.scm
CommitLineData
e55354b8 1;;; GNU Guix --- Functional package management for GNU
0b8e89f6 2;;; Copyright © 2013, 2017 Ludovic Courtès <ludo@gnu.org>
451b5c5d 3;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr>
86fa2ea9 4;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
85a02905 5;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
e32db0fa 6;;; Copyright © 2014, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
0731a47c 7;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
fcc43c1f 8;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net>
21122bd7 9;;; Copyright © 2014, 2017 John Darrington <jmd@gnu.org>
bc806b0c 10;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
cd5e0843 11;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
10db6778 12;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
1fa3e336 13;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
2235abb2 14;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
3c8ba11a 15;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
47956fa0 16;;; Copyright © 2017 ng0 <ng0@n0.is>
2f8b9c46 17;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
f2079849 18;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
da4dde61 19;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
62813c10 20;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
4715f92e 21;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
910a20e2 22;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
3239dcd3 23;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
6e35bad0 24;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
0290f533 25;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
e55354b8
DT
26;;;
27;;; This file is part of GNU Guix.
28;;;
29;;; GNU Guix is free software; you can redistribute it and/or modify it
30;;; under the terms of the GNU General Public License as published by
31;;; the Free Software Foundation; either version 3 of the License, or (at
32;;; your option) any later version.
33;;;
34;;; GNU Guix is distributed in the hope that it will be useful, but
35;;; WITHOUT ANY WARRANTY; without even the implied warranty of
36;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37;;; GNU General Public License for more details.
38;;;
39;;; You should have received a copy of the GNU General Public License
40;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
41
42(define-module (gnu packages image)
43 #:use-module (gnu packages)
97039f6e 44 #:use-module (gnu packages algebra)
37e05d64 45 #:use-module (gnu packages assembly)
894e2cba 46 #:use-module (gnu packages autotools)
97039f6e 47 #:use-module (gnu packages boost)
ac257f12 48 #:use-module (gnu packages check)
3239dcd3 49 #:use-module (gnu packages curl)
e55354b8 50 #:use-module (gnu packages compression)
99828fa7 51 #:use-module (gnu packages documentation)
efa77baf 52 #:use-module (gnu packages fontutils)
0290f533 53 #:use-module (gnu packages freedesktop)
0bd1097c
LF
54 ;; To provide gcc@5 and gcc@6, to work around <http://bugs.gnu.org/24703>.
55 #:use-module (gnu packages gcc)
1fa3e336 56 #:use-module (gnu packages gettext)
97039f6e 57 #:use-module (gnu packages ghostscript)
060ad3de 58 #:use-module (gnu packages gl)
023f0fb0 59 #:use-module (gnu packages glib)
ced7cc92 60 #:use-module (gnu packages graphics)
f2079849
JL
61 #:use-module (gnu packages gtk)
62 #:use-module (gnu packages lua)
0290f533 63 #:use-module (gnu packages man)
97039f6e 64 #:use-module (gnu packages maths)
1fa3e336 65 #:use-module (gnu packages mcrypt)
97039f6e 66 #:use-module (gnu packages perl)
a5d4c96b 67 #:use-module (gnu packages photo)
efa77baf 68 #:use-module (gnu packages pkg-config)
97039f6e 69 #:use-module (gnu packages python)
44d10b1f 70 #:use-module (gnu packages python-xyz)
9d0c291e 71 #:use-module (gnu packages sphinx)
efa77baf 72 #:use-module (gnu packages xml)
76d88cfa 73 #:use-module (gnu packages xorg)
84567657 74 #:use-module (gnu packages qt)
b5b73a82 75 #:use-module ((guix licenses) #:prefix license:)
e55354b8
DT
76 #:use-module (guix packages)
77 #:use-module (guix download)
ac2a38a5 78 #:use-module (guix git-download)
38c55e5c 79 #:use-module (guix build-system gnu)
e596ab0f 80 #:use-module (guix build-system cmake)
0290f533 81 #:use-module (guix build-system meson)
f2079849 82 #:use-module (guix build-system python)
eb60149e 83 #:use-module (guix build-system r)
2235abb2 84 #:use-module (guix build-system scons)
e596ab0f 85 #:use-module (srfi srfi-1))
e55354b8
DT
86
87(define-public libpng
88 (package
89 (name "libpng")
f19d9db5 90 (version "1.6.34")
a18581a0 91 (replacement libpng-1.6.37)
e55354b8
DT
92 (source (origin
93 (method url-fetch)
a2f3c614 94 (uri (list (string-append "mirror://sourceforge/libpng/libpng16/"
21ef9843
MW
95 version "/libpng-" version ".tar.xz")
96 (string-append
97 "ftp://ftp.simplesystems.org/pub/libpng/png/src"
913059a1
EF
98 "/libpng16/libpng-" version ".tar.xz")
99 (string-append
100 "ftp://ftp.simplesystems.org/pub/libpng/png/src/history"
101 "/libpng16/libpng-" version ".tar.xz")))
e55354b8 102 (sha256
8fda37bc 103 (base32
f19d9db5 104 "1xjr0v34fyjgnhvaa1zixcpx5yvxcg4zwvfh0fyklfyfj86rc7ig"))))
e55354b8
DT
105 (build-system gnu-build-system)
106
107 ;; libpng.la says "-lz", so propagate it.
108 (propagated-inputs `(("zlib" ,zlib)))
109
110 (synopsis "Library for handling PNG files")
111 (description
112 "Libpng is the official PNG (Portable Network Graphics) reference
35b9e423 113library. It supports almost all PNG features and is extensible.")
e55354b8
DT
114 (license license:zlib)
115 (home-page "http://www.libpng.org/pub/png/libpng.html")))
116
a18581a0
MB
117;; This graft exists to fix CVE-2018-14048, CVE-2018-14550, and CVE-2019-7317.
118(define-public libpng-1.6.37
119 (package
120 (inherit libpng)
121 (version "1.6.37")
122 (source (origin
123 (method url-fetch)
124 (uri (list (string-append "mirror://sourceforge/libpng/libpng16/"
125 version "/libpng-" version ".tar.xz")
126 (string-append
127 "ftp://ftp.simplesystems.org/pub/libpng/png/src"
128 "/libpng16/libpng-" version ".tar.xz")
129 (string-append
130 "ftp://ftp.simplesystems.org/pub/libpng/png/src/history"
131 "/libpng16/libpng-" version ".tar.xz")))
132 (sha256
133 (base32
134 "1jl8in381z0128vgxnvn33nln6hzckl7l7j9nqvkaf1m9n1p0pjh"))))))
135
e0958c2d 136;; libpng-apng should be updated when the APNG patch is released:
137;; <https://bugs.gnu.org/27556>
114a325e 138(define-public libpng-apng
139 (package
114a325e 140 (name "libpng-apng")
e0958c2d 141 (version "1.6.28")
142 (source
143 (origin
144 (method url-fetch)
145 (uri (list (string-append "mirror://sourceforge/libpng/libpng16/"
146 version "/libpng-" version ".tar.xz")
147 (string-append
148 "ftp://ftp.simplesystems.org/pub/libpng/png/src"
149 "/libpng16/libpng-" version ".tar.xz")
150 (string-append
151 "ftp://ftp.simplesystems.org/pub/libpng/png/src/history"
152 "/libpng16/libpng-" version ".tar.xz")))
153 (sha256
154 (base32
155 "0ylgyx93hnk38haqrh8prd3ax5ngzwvjqw5cxw7p9nxmwsfyrlyq"))))
156 (build-system gnu-build-system)
114a325e 157 (arguments
696f1d0f
LF
158 `(#:modules ((guix build gnu-build-system)
159 (guix build utils)
160 (srfi srfi-1))
161 #:phases
114a325e 162 (modify-phases %standard-phases
163 (add-after 'unpack 'patch-apng
164 (lambda* (#:key inputs #:allow-other-keys)
165 (define (apply-patch file)
fccacffb
MW
166 (invoke "patch" "-p1" "--force"
167 "--input" file))
114a325e 168 (let ((apng.gz (assoc-ref inputs "apng")))
169 (format #t "Applying APNG patch '~a'...~%"
170 apng.gz)
fccacffb
MW
171 (invoke "sh" "-c"
172 (string-append "gunzip < " apng.gz " > the-patch"))
173 (apply-patch "the-patch")
174 #t)))
114a325e 175 (add-before 'configure 'no-checks
176 (lambda _
177 (substitute* "Makefile.in"
178 (("^scripts/symbols.chk") "")
179 (("check: scripts/symbols.chk") ""))
114a325e 180 #t)))))
181 (inputs
182 `(("apng" ,(origin
183 (method url-fetch)
184 (uri
185 (string-append "mirror://sourceforge/libpng-apng/libpng16/"
186 version "/libpng-" version "-apng.patch.gz"))
187 (sha256
188 (base32
e0958c2d 189 "0m5nv70n9903x3xzxw9qqc6sgf2rp106ha0x6gix0xf8wcrljaab"))))))
114a325e 190 (native-inputs
191 `(("libtool" ,libtool)))
e0958c2d 192 ;; libpng.la says "-lz", so propagate it.
193 (propagated-inputs
194 `(("zlib" ,zlib)))
114a325e 195 (synopsis "APNG patch for libpng")
196 (description
197 "APNG (Animated Portable Network Graphics) is an unofficial
198extension of the APNG (Portable Network Graphics) format.
199APNG patch provides APNG support to libpng.")
e0958c2d 200 (home-page "https://sourceforge.net/projects/libpng-apng/")
201 (license license:zlib)))
114a325e 202
2df831a7
RW
203(define-public libpng-1.2
204 (package
205 (inherit libpng)
6cdd8c97 206 (version "1.2.59")
2df831a7
RW
207 (source
208 (origin
209 (method url-fetch)
2df831a7
RW
210 (uri (list (string-append "mirror://sourceforge/libpng/libpng12/"
211 version "/libpng-" version ".tar.xz")
212 (string-append
213 "ftp://ftp.simplesystems.org/pub/libpng/png/src"
913059a1
EF
214 "/libpng12/libpng-" version ".tar.xz")
215 (string-append
216 "ftp://ftp.simplesystems.org/pub/libpng/png/src/history"
2df831a7
RW
217 "/libpng12/libpng-" version ".tar.xz")))
218 (sha256
6cdd8c97
LF
219 (base32
220 "1izw9ybm27llk8531w6h4jp4rk2rxy2s9vil16nwik5dp0amyqxl"))))))
2df831a7 221
1ee13e01 222(define-public pngcrush
2f8b9c46 223 (package
1ee13e01 224 (name "pngcrush")
225 (version "1.8.13")
2f8b9c46
HG
226 (source (origin
227 (method url-fetch)
228 (uri (string-append "mirror://sourceforge/pmt/pngcrush/"
1ee13e01 229 version "/pngcrush-" version "-nolib.tar.xz"))
2f8b9c46 230 (sha256 (base32
1ee13e01 231 "0l43c59d6v9l0g07z3q3ywhb8xb3vz74llv3mna0izk9bj6aqkiv"))))
2f8b9c46
HG
232 (build-system gnu-build-system)
233 (arguments
1ee13e01 234 '(#:tests? #f ; no check target
2f8b9c46
HG
235 #:phases
236 (modify-phases %standard-phases
237 (replace 'configure
238 (lambda* (#:key inputs outputs #:allow-other-keys)
1ee13e01 239 (substitute* "Makefile"
2f8b9c46
HG
240 (("^(PNG(INC|LIB) = )/usr/local/" line vardef)
241 (string-append vardef (assoc-ref inputs "libpng") "/"))
242 (("^(Z(INC|LIB) = )/usr/local/" line vardef)
243 (string-append vardef (assoc-ref inputs "zlib") "/"))
244 ;; The Makefile is written by hand and not using $PREFIX
245 (("\\$\\(DESTDIR\\)/usr/")
fccacffb
MW
246 (string-append (assoc-ref outputs "out") "/")))
247 #t)))))
2f8b9c46
HG
248 (inputs
249 `(("libpng" ,libpng)
250 ("zlib" , zlib)))
1ee13e01 251 (home-page "https://pmt.sourceforge.io/pngcrush")
2f8b9c46
HG
252 (synopsis "Utility to compress PNG files")
253 (description "pngcrusqh is an optimizer for PNG (Portable Network Graphics)
254files. It can compress them as much as 40% losslessly.")
255 (license license:zlib)))
256
1ee13e01 257(define-public pngcrunch
258 ;; This package used to be wrongfully name "pngcrunch".
259 (deprecated-package "pngcrunch" pngcrush))
260
6e35bad0
AV
261(define-public pnglite
262 (let ((commit "11695c56f7d7db806920bd9229b69f230e6ffb38")
263 (revision "1"))
264 (package
265 (name "pnglite")
266 ;; The project was moved from sourceforge to github.
267 ;; The latest version in sourceforge was 0.1.17:
268 ;; https://sourceforge.net/projects/pnglite/files/pnglite/
269 ;; No releases are made in github.
270 (version (git-version "0.1.17" revision commit))
271 (source (origin
272 (method git-fetch)
273 (uri (git-reference
274 (url "https://github.com/dankar/pnglite")
275 (commit commit)))
276 (sha256
277 (base32
278 "1lmmkdxby5b8z9kx3zrpgpk33njpcf2xx8z9bgqag855sjsqbbby"))
279 (file-name (git-file-name name version))))
280 (build-system gnu-build-system)
281 (arguments
282 `(#:tests? #f ; no tests
283 #:phases
284 (modify-phases %standard-phases
285 (delete 'configure)
286 (replace 'build
287 (lambda _
288 ;; common build flags for building shared libraries
289 (let ((cflags '("-O2" "-g" "-fPIC"))
290 (ldflags '("-shared")))
291 (apply invoke
292 `("gcc"
293 "-o" "libpnglite.so"
294 ,@cflags
295 ,@ldflags
296 "pnglite.c"))
297 #t)))
298 (replace 'install
299 (lambda* (#:key outputs #:allow-other-keys)
300 (let* ((out (assoc-ref outputs "out"))
301 (lib (string-append out "/lib/"))
302 (include (string-append out "/include/"))
303 (doc (string-append out "/share/doc/"
304 ,name "-" ,version "/")))
305 (install-file "libpnglite.so" lib)
306 (install-file "pnglite.h" include)
307 (install-file "README.md" doc)
308 #t))))))
309 (inputs `(("zlib" ,zlib)))
310 (home-page "https://github.com/dankar/pnglite")
311 (synopsis "Pretty small png library")
312 (description "A pretty small png library.
313Currently all documentation resides in @file{pnglite.h}.")
314 (license license:zlib))))
315
e55354b8
DT
316(define-public libjpeg
317 (package
318 (name "libjpeg")
38e4d595 319 (version "9c")
e55354b8
DT
320 (source (origin
321 (method url-fetch)
60562ec2 322 (uri (string-append "https://www.ijg.org/files/jpegsrc.v"
e55354b8
DT
323 version ".tar.gz"))
324 (sha256 (base32
38e4d595 325 "08kixcf3a7s9x91174abjnk1xbvj4v8crdc73zi4k9h3jfbm00k5"))))
e55354b8 326 (build-system gnu-build-system)
35b9e423 327 (synopsis "Library for handling JPEG files")
e55354b8
DT
328 (description
329 "Libjpeg implements JPEG image encoding, decoding, and transcoding.
330JPEG is a standardized compression method for full-color and gray-scale
331images.
61853b74
MC
332It also includes programs that provide conversion between the JPEG format and
333image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats, as well as
334lossless JPEG manipulations such as rotation, scaling or cropping:
335@enumerate
336@item cjpeg
337@item djpeg
338@item jpegtran
339@item rdjpgcom
340@item wrjpgcom
341@end enumerate")
e55354b8 342 (license license:ijg)
60562ec2 343 (home-page "https://www.ijg.org/")))
e55354b8
DT
344
345(define-public libjpeg-8
346 (package (inherit libjpeg)
347 (version "8d")
348 (source (origin
349 (method url-fetch)
60562ec2 350 (uri (string-append "https://www.ijg.org/files/jpegsrc.v"
e55354b8
DT
351 version ".tar.gz"))
352 (sha256 (base32
353 "1cz0dy05mgxqdgjf52p54yxpyy95rgl30cnazdrfmw7hfca9n0h0"))))))
fcc43c1f 354
b81245cc
KK
355(define-public libjxr
356 (package
357 (name "libjxr")
358 (version "1.1")
359 (source (origin
360 ;; We are using the Debian source because CodePlex does not
361 ;; deliver an easily downloadable tarball.
362 (method url-fetch)
363 (uri (string-append "mirror://debian/pool/main/j/jxrlib/jxrlib_"
364 version ".orig.tar.gz"))
365 (sha256
366 (base32
367 "00w3f3cmjsm3fiaxq5mxskmp5rl3mki8psrf9y8s1vqbg237na67"))
368 (patch-flags '("-p1" "--binary"))
369 (patches (search-patches "libjxr-fix-function-signature.patch"
370 "libjxr-fix-typos.patch"))))
371 (build-system gnu-build-system)
372 (arguments '(#:make-flags '("CC=gcc")
373 #:tests? #f ; no check target
374 #:phases
375 (modify-phases %standard-phases
376 (delete 'configure) ; no configure script
377 ;; The upstream makefile does not include an install phase.
378 (replace 'install
379 (lambda* (#:key outputs #:allow-other-keys)
380 (let* ((out (assoc-ref outputs "out"))
381 (bin (string-append out "/bin"))
382 (lib (string-append out "/lib"))
383 (include (string-append out "/include/jxrlib")))
384 (for-each (lambda (file)
385 (install-file file include)
386 (delete-file file))
387 (append
388 '("jxrgluelib/JXRGlue.h"
389 "jxrgluelib/JXRMeta.h"
390 "jxrtestlib/JXRTest.h"
391 "image/sys/windowsmediaphoto.h")
392 (find-files "common/include" "\\.h$")))
393 (for-each (lambda (file)
394 (install-file file lib)
395 (delete-file file))
396 (find-files "." "\\.a$"))
397 (for-each (lambda (file)
398 (install-file file bin)
399 (delete-file file))
400 '("JxrDecApp" "JxrEncApp")))
401 #t)))))
402 (synopsis "Implementation of the JPEG XR standard")
403 (description "JPEG XR is an approved ISO/IEC International standard (its
404official designation is ISO/IEC 29199-2). This library is an implementation of that standard.")
405 (license
406 (license:non-copyleft
407 "file://Makefile"
408 "See the header of the Makefile in the distribution."))
409 (home-page "https://jxrlib.codeplex.com/")))
410
fcc43c1f
AB
411(define-public jpegoptim
412 (package
413 (name "jpegoptim")
b01a8790 414 (version "1.4.6")
fcc43c1f
AB
415 (source (origin
416 (method url-fetch)
417 (uri (string-append "http://www.kokkonen.net/tjko/src/jpegoptim-"
418 version ".tar.gz"))
419 (sha256 (base32
b01a8790 420 "1dss7907fclfl8zsw0bl4qcw0hhz6fqgi3867w0jyfm3q9jfpcc8"))))
fcc43c1f
AB
421 (build-system gnu-build-system)
422 (inputs `(("libjpeg" ,libjpeg)))
423 (arguments
b01a8790 424 '(#:tests? #f)) ; no tests
fcc43c1f
AB
425 (synopsis "Optimize JPEG images")
426 (description
427 "jpegoptim provides lossless optimization (based on optimizing
428the Huffman tables) and \"lossy\" optimization based on setting
429maximum quality factor.")
430 (license license:gpl2+)
ada3b94f 431 (home-page "https://www.kokkonen.net/tjko/projects.html#jpegoptim")))
e55354b8 432
f5e4229a
BT
433(define-public libicns
434 (package
435 (name "libicns")
436 (version "0.8.1")
437 (source (origin
438 (method url-fetch)
439 (uri (string-append
440 "mirror://sourceforge/icns/"
441 "libicns-" version ".tar.gz"))
442 (sha256
443 (base32
444 "1hjm8lwap7bjyyxsyi94fh5817xzqhk4kb5y0b7mb6675xw10prk"))))
445 (build-system gnu-build-system)
446 (inputs
447 `(("libpng" ,libpng)
448 ("jasper" ,jasper)))
449 (arguments
450 `(#:tests? #t)) ; No tests.
451 (home-page "http://icns.sourceforge.net/")
452 (synopsis "Library for handling Mac OS icns resource files")
453 (description
454 "Libicns is a library for the manipulation of Mac OS IconFamily resource
455type files (ICNS). @command{icns2png} and @command{png2icns} are provided to
456convert between PNG and ICNS. @command{icns2png} will extract image files from
457ICNS files under names like \"Foo_48x48x32.png\" useful for installing for use
458with .desktop files. Additionally, @command{icontainer2png} is provided for
459extracting icontainer icon files.")
460 (license (list license:lgpl2.1+ ; libicns
461 license:lgpl2.0+ ; src/apidocs.*
462 license:gpl2+)))) ; icns2png, png2icns, icontainer2png
463
e55354b8
DT
464(define-public libtiff
465 (package
466 (name "libtiff")
3f2848a5 467 (version "4.0.10")
c8eb2b8c
LF
468 (source
469 (origin
470 (method url-fetch)
9d7d8e71 471 (uri (string-append "http://download.osgeo.org/libtiff/tiff-"
c8eb2b8c 472 version ".tar.gz"))
c8eb2b8c
LF
473 (sha256
474 (base32
3f2848a5 475 "1r4np635gr6zlc0bic38dzvxia6iqzcrary4n1ylarzpr8fd2lic"))))
e55354b8 476 (build-system gnu-build-system)
6f6eb857
LC
477 (outputs '("out"
478 "doc")) ;1.3 MiB of HTML documentation
479 (arguments
480 ;; Instead of using --docdir, this package has its own --with-docdir.
481 `(#:configure-flags (list (string-append "--with-docdir="
482 (assoc-ref %outputs "doc")
483 "/share/doc/"
484 ,name "-" ,version))))
e55354b8 485 (inputs `(("zlib" ,zlib)
1de0afd5 486 ("libjpeg" ,libjpeg)))
35b9e423 487 (synopsis "Library for handling TIFF files")
e55354b8
DT
488 (description
489 "Libtiff provides support for the Tag Image File Format (TIFF), a format
490used for storing image data.
491Included are a library, libtiff, for reading and writing TIFF and a small
492collection of tools for doing simple manipulations of TIFF images.")
166191b3
LC
493 (license (license:non-copyleft "file://COPYRIGHT"
494 "See COPYRIGHT in the distribution."))
0bd1097c 495 (home-page "http://www.simplesystems.org/libtiff/")))
ed5940b6 496
894e2cba
TUBK
497(define-public leptonica
498 (package
499 (name "leptonica")
340502ba 500 (version "1.74.4")
894e2cba
TUBK
501 (source
502 (origin
69f7d3f4
RW
503 (method git-fetch)
504 (uri (git-reference
505 (url "https://github.com/DanBloomberg/leptonica.git")
506 (commit version)))
507 (file-name (git-file-name name version))
894e2cba 508 (sha256
69f7d3f4 509 (base32 "0sfg1ky0lghlq7xx0qii5167bim0wwfnnr83dl4skbj9awyvjiwi"))))
894e2cba
TUBK
510 (build-system gnu-build-system)
511 (native-inputs
d02fb7ce
TUBK
512 `(("gnuplot" ,gnuplot) ;needed for test suite
513 ("autoconf" ,autoconf)
514 ("automake" ,automake)
515 ("libtool" ,libtool)
516 ("pkg-config" ,pkg-config)))
894e2cba
TUBK
517 (inputs
518 `(("giflib" ,giflib)
519 ("libjpeg" ,libjpeg)
520 ("libpng" ,libpng)
521 ("libtiff" ,libtiff)
522 ("libwebp" ,libwebp)))
523 (propagated-inputs
d02fb7ce 524 ;; Linking a program with leptonica also requires these.
894e2cba
TUBK
525 `(("openjpeg" ,openjpeg)
526 ("zlib" ,zlib)))
527 (arguments
d02fb7ce 528 '(#:phases
894e2cba 529 (modify-phases %standard-phases
d02fb7ce
TUBK
530 (add-after 'unpack 'autogen
531 (lambda _
fccacffb 532 (invoke "sh" "autobuild")))
d02fb7ce
TUBK
533 (add-after 'unpack 'patch-reg-wrapper
534 (lambda _
535 (substitute* "prog/reg_wrapper.sh"
536 ((" /bin/sh ")
537 (string-append " " (which "sh") " "))
538 (("which gnuplot")
fccacffb
MW
539 "true"))
540 #t)))))
894e2cba
TUBK
541 (home-page "http://www.leptonica.com/")
542 (synopsis "Library and tools for image processing and analysis")
543 (description
544 "Leptonica is a C library and set of command-line tools for efficient
545image processing and image analysis operations. It supports rasterop, affine
546transformations, binary and grayscale morphology, rank order, and convolution,
547seedfill and connected components, image transformations combining changes in
548scale and pixel depth, and pixelwise masking, blending, enhancement, and
549arithmetic ops.")
550 (license license:bsd-2)))
551
8d9872b5
MB
552(define-public jbig2dec
553 (package
554 (name "jbig2dec")
fb94354a
MB
555 (version "0.15")
556 (source (origin
557 (method url-fetch)
558 (uri (string-append "https://github.com/ArtifexSoftware"
559 "/ghostpdl-downloads/releases/download"
560 "/gs924/" name "-" version ".tar.gz"))
561 (sha256
562 (base32
563 "0m1qwpbjbirgw2fqznbajdhdhh35d6xa2csr64lpjz735pvimykb"))
564 (patches (search-patches "jbig2dec-ignore-testtest.patch"))))
8d9872b5 565 (build-system gnu-build-system)
5e537222 566 (arguments '(#:configure-flags '("--disable-static")))
8d9872b5
MB
567 (synopsis "Decoder of the JBIG2 image compression format")
568 (description
36a4366d 569 "JBIG2 is designed for lossy or lossless encoding of @code{bilevel} (1-bit
7c125ce0
AK
570monochrome) images at moderately high resolution, and in particular scanned
571paper documents. In this domain it is very efficient, offering compression
572ratios on the order of 100:1.
8d9872b5
MB
573
574This is a decoder only implementation, and currently is in the alpha
575stage, meaning it doesn't completely work yet. However, it is
576maintaining parity with available encoders, so it is useful for real
577work.")
6acc671b 578 (home-page "https://jbig2dec.com")
8d9872b5 579 (license license:gpl2+)))
38c55e5c
MB
580
581(define-public openjpeg
582 (package
583 (name "openjpeg")
3f697ff2 584 (version "2.3.0")
0e2b0b05 585 (replacement openjpeg-2.3.1)
38c55e5c
MB
586 (source
587 (origin
588 (method url-fetch)
589 (uri
876d80d4
LF
590 (string-append "https://github.com/uclouvain/openjpeg/archive/v"
591 version ".tar.gz"))
592 (file-name (string-append name "-" version ".tar.gz"))
38c55e5c 593 (sha256
876d80d4 594 (base32
3f697ff2 595 "06npqzkg20avnygdwaqpap91r7qpdqgrn39adj2bl8v0pg0qgirx"))))
38c55e5c
MB
596 (build-system cmake-build-system)
597 (arguments
598 ;; Trying to run `$ make check' results in a no rule fault.
599 '(#:tests? #f))
600 (inputs
601 `(("lcms" ,lcms)
602 ("libpng" ,libpng)
603 ("libtiff" ,libtiff)
604 ("zlib" ,zlib)))
605 (synopsis "JPEG 2000 codec")
606 (description
607 "The OpenJPEG library is a JPEG 2000 codec written in C. It has
608been developed in order to promote the use of JPEG 2000, the new
609still-image compression standard from the Joint Photographic Experts
610Group (JPEG).
611
612In addition to the basic codec, various other features are under
613development, among them the JP2 and MJ2 (Motion JPEG 2000) file formats,
614an indexing tool useful for the JPIP protocol, JPWL-tools for
615error-resilience, a Java-viewer for j2k-images, ...")
b9270582 616 (home-page "https://github.com/uclouvain/openjpeg")
38c55e5c 617 (license license:bsd-2)))
76d88cfa 618
0e2b0b05
MB
619(define-public openjpeg-2.3.1
620 (package
621 (inherit openjpeg)
622 (version "2.3.1")
623 (source (origin
624 (method git-fetch)
625 (uri (git-reference
626 (url "https://github.com/uclouvain/openjpeg")
627 (commit (string-append "v" version))))
628 (file-name (git-file-name "openjpeg" version))
629 (sha256
630 (base32
631 "1dn98d2dfa1lqyxxmab6rrcv52dyhjr4g7i4xf2w54fqsx14ynrb"))))))
632
6140b9d8
RW
633(define-public openjpeg-1
634 (package (inherit openjpeg)
635 (name "openjpeg")
636 (version "1.5.2")
637 (source
638 (origin
639 (method url-fetch)
640 (uri
de67e922
LF
641 (string-append "mirror://sourceforge/openjpeg.mirror/" version "/"
642 name "-" version ".tar.gz"))
6140b9d8
RW
643 (sha256
644 (base32 "11waq9w215zvzxrpv40afyd18qf79mxc28fda80bm3ax98cpppqm"))))))
645
e596ab0f
AK
646(define-public giflib
647 (package
648 (name "giflib")
3fdb2a84 649 (version "5.1.4")
e596ab0f
AK
650 (source (origin
651 (method url-fetch)
652 (uri (string-append "mirror://sourceforge/giflib/giflib-"
de67e922 653 version ".tar.bz2"))
e596ab0f 654 (sha256
44c5f025 655 (base32
7ac43c44
HG
656 "1md83dip8rf29y40cm5r7nn19705f54iraz6545zhwa6y8zyq9yz"))
657 (patches (search-patches
658 "giflib-make-reallocarray-private.patch"))))
e596ab0f
AK
659 (build-system gnu-build-system)
660 (outputs '("bin" ; utility programs
661 "out")) ; library
662 (inputs `(("libx11" ,libx11)
663 ("libice" ,libice)
664 ("libsm" ,libsm)
665 ("perl" ,perl)))
666 (arguments
44c5f025
EF
667 `(#:phases
668 (modify-phases %standard-phases
669 (add-after 'unpack 'disable-html-doc-gen
670 (lambda _
671 (substitute* "doc/Makefile.in"
4a3ee3fb
MW
672 (("^all: allhtml manpages") ""))
673 #t))
44c5f025
EF
674 (add-after 'install 'install-manpages
675 (lambda* (#:key outputs #:allow-other-keys)
676 (let* ((bin (assoc-ref outputs "bin"))
677 (man1dir (string-append bin "/share/man/man1")))
678 (mkdir-p man1dir)
679 (for-each (lambda (file)
680 (let ((base (basename file)))
681 (format #t "installing `~a' to `~a'~%"
682 base man1dir)
683 (copy-file file
684 (string-append
685 man1dir "/" base))))
4a3ee3fb
MW
686 (find-files "doc" "\\.1"))
687 #t))))))
e596ab0f
AK
688 (synopsis "Tools and library for working with GIF images")
689 (description
35b9e423 690 "GIFLIB is a library for reading and writing GIF images. It is API and
e596ab0f
AK
691ABI compatible with libungif which was in wide use while the LZW compression
692algorithm was patented. Tools are also included to convert, manipulate,
693compose, and analyze GIF images.")
694 (home-page "http://giflib.sourceforge.net/")
695 (license license:x11)))
696
0731a47c
TUBK
697(define-public libungif
698 (package
699 (name "libungif")
700 (version "4.1.4")
701 (source (origin
702 (method url-fetch)
de67e922
LF
703 (uri (string-append "mirror://sourceforge/giflib/libungif-4.x/"
704 "libungif-" version "/libungif-"
0731a47c
TUBK
705 version ".tar.bz2"))
706 (sha256
707 (base32
708 "0cnksimmmjngdrys302ik1385sg1sj4i0gxivzldhgwd46n7x2kh"))))
709 (build-system gnu-build-system)
710 (inputs `(("perl" ,perl))) ;package ships some perl tools
711 (home-page "http://giflib.sourceforge.net/")
712 (synopsis "GIF decompression library")
713 (description
714 "libungif is the old GIF decompression library by the GIFLIB project.")
715 (license license:expat)))
716
76d88cfa
AK
717(define-public imlib2
718 (package
719 (name "imlib2")
c9838530 720 (version "1.5.1")
76d88cfa
AK
721 (source (origin
722 (method url-fetch)
723 (uri (string-append
de67e922
LF
724 "mirror://sourceforge/enlightenment/imlib2-src/" version
725 "/imlib2-" version ".tar.bz2"))
76d88cfa
AK
726 (sha256
727 (base32
c9838530 728 "1bms2iwmvnvpz5jqq3r52glarqkafif47zbh1ykz8hw85d2mfkps"))))
76d88cfa 729 (build-system gnu-build-system)
76d88cfa
AK
730 (native-inputs
731 `(("pkgconfig" ,pkg-config)))
732 (inputs
733 `(("libx11" ,libx11)
734 ("libxext" ,libxext)
735 ("freetype" ,freetype)
736 ("libjpeg" ,libjpeg)
737 ("libpng" ,libpng)
738 ("libtiff" ,libtiff)
739 ("giflib" ,giflib)
740 ("bzip2" ,bzip2)))
3b3b60d0 741 (home-page "https://sourceforge.net/projects/enlightenment/")
76d88cfa
AK
742 (synopsis
743 "Loading, saving, rendering and manipulating image files")
744 (description
745 "Imlib2 is a library that does image file loading and saving as well as
746rendering, manipulation, arbitrary polygon support, etc.
747
748It does ALL of these operations FAST. Imlib2 also tries to be highly
749intelligent about doing them, so writing naive programs can be done easily,
750without sacrificing speed.
751
752This is a complete rewrite over the Imlib 1.x series. The architecture is
753more modular, simple, and flexible.")
8835aed4 754 (license license:imlib2)))
f7d28082
AK
755
756(define-public giblib
757 (package
758 (name "giblib")
759 (version "1.2.4")
760 (source (origin
761 (method url-fetch)
bf512da1
EF
762 (uri (list
763 (string-append
764 "http://linuxbrit.co.uk/downloads/giblib-"
765 version ".tar.gz")
766 (string-append
767 "https://sourceforge.net/projects/slackbuildsdirectlinks/"
768 "files/giblib/giblib-" version ".tar.gz")))
f7d28082
AK
769 (sha256
770 (base32
771 "1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp"))))
772 (build-system gnu-build-system)
773 (inputs
774 `(("libx11" ,libx11)
775 ("imlib2" ,imlib2)))
776 (home-page "http://linuxbrit.co.uk/software/") ; no real home-page
777 (synopsis "Wrapper library for imlib2")
778 (description
35b9e423 779 "Giblib is a simple library which wraps imlib2's context API, avoiding
f7d28082
AK
780all the context_get/set calls, adds fontstyles to the truetype renderer and
781supplies a generic doubly-linked list and some string functions.")
782 ;; This license removes a clause about X Consortium from the original
783 ;; X11 license.
784 (license (license:x11-style "file://COPYING"
785 "See 'COPYING' in the distribution."))))
43402c5c
DT
786
787(define-public freeimage
788 (package
789 (name "freeimage")
bcc09d9a 790 (version "3.17.0")
43402c5c
DT
791 (source (origin
792 (method url-fetch)
793 (uri (string-append
794 "mirror://sourceforge/freeimage/Source%20Distribution/"
795 version "/FreeImage"
bcc09d9a 796 (string-concatenate (string-split version #\.))
43402c5c
DT
797 ".zip"))
798 (sha256
799 (base32
93bd4a37 800 "12bz57asdcfsz3zr9i9nska0fb6h3z2aizy412qjqkixkginbz7v"))
a5d4c96b
EF
801 (modules '((guix build utils)))
802 (snippet
803 '(begin
804 (for-each
805 (lambda (dir)
806 (delete-file-recursively (string-append "Source/" dir)))
f347c24a
EF
807 '("LibJPEG" "LibOpenJPEG" "LibPNG" "LibRawLite"
808 ;; "LibJXR"
a5d4c96b
EF
809 "LibWebP" "OpenEXR" "ZLib"))))
810 (patches (search-patches "freeimage-unbundle.patch"
811 "freeimage-CVE-2015-0852.patch"
dc8a34ed
RW
812 "freeimage-CVE-2016-5684.patch"
813 "freeimage-fix-build-with-gcc-5.patch"))))
43402c5c
DT
814 (build-system gnu-build-system)
815 (arguments
4a2798e0
EF
816 '(#:phases
817 (modify-phases %standard-phases
a5d4c96b
EF
818 ;; According to Fedora these files depend on private headers, but their
819 ;; presence is required for building, so we replace them with empty files.
820 (add-after 'unpack 'delete-unbuildable-files
821 (lambda _
822 (for-each (lambda (file)
823 (delete-file file)
824 (close (open file O_CREAT)))
825 '("Source/FreeImage/PluginG3.cpp"
826 "Source/FreeImageToolkit/JPEGTransform.cpp"))
827 #t))
828 ;; These scripts generate the Makefiles.
829 (replace 'configure
830 (lambda _
831 (invoke "sh" "gensrclist.sh")
832 (invoke "sh" "genfipsrclist.sh")))
4a2798e0
EF
833 (add-before 'build 'patch-makefile
834 (lambda* (#:key outputs #:allow-other-keys)
835 (substitute* "Makefile.gnu"
836 (("/usr") (assoc-ref outputs "out"))
837 (("-o root -g root") ""))
838 #t)))
a5d4c96b
EF
839 #:make-flags
840 (list "CC=gcc"
841 ;; We need '-fpermissive' for Source/FreeImage.h.
842 ;; libjxr doesn't have a pkg-config file.
843 (string-append "CFLAGS+=-O2 -fPIC -fvisibility=hidden -fpermissive "
f347c24a
EF
844 ;"-I" (assoc-ref %build-inputs "libjxr") "/include/jxrlib"
845 ))
43402c5c
DT
846 #:tests? #f)) ; no check target
847 (native-inputs
a5d4c96b
EF
848 `(("pkg-config" ,pkg-config)
849 ("unzip" ,unzip)))
850 (inputs
851 `(("libjpeg" ,libjpeg)
f347c24a 852 ;("libjxr" ,libjxr)
a5d4c96b
EF
853 ("libpng" ,libpng)
854 ("libraw" ,libraw)
855 ("libtiff" ,libtiff)
856 ("libwebp" ,libwebp)
857 ("openexr" ,openexr)
858 ("openjpeg" ,openjpeg)
859 ("zlib" ,zlib)))
43402c5c
DT
860 (synopsis "Library for handling popular graphics image formats")
861 (description
862 "FreeImage is a library for developers who would like to support popular
863graphics image formats like PNG, BMP, JPEG, TIFF and others.")
864 (license license:gpl2+)
865 (home-page "http://freeimage.sourceforge.net")))
97039f6e
AE
866
867(define-public vigra
019b3875
AE
868 (package
869 (name "vigra")
83273596 870 (version "1.11.1")
019b3875
AE
871 (source
872 (origin
873 (method url-fetch)
874 (uri (string-append "https://github.com/ukoethe/vigra/releases/download/"
83273596
MB
875 "Version-" (string-join (string-split version #\.) "-")
876 "/vigra-" version "-src.tar.gz"))
019b3875 877 (sha256 (base32
83273596 878 "1bqs8vx5i1bzamvv563i24gx2xxdidqyxh9iaj46mbznhc84wmm5"))))
019b3875
AE
879 (build-system cmake-build-system)
880 (inputs
881 `(("boost" ,boost)
882 ("fftw" ,fftw)
883 ("fftwf" ,fftwf)
884 ("hdf5" ,hdf5)
885 ("ilmbase" ,ilmbase) ; propagated by openexr, but needed explicitly
886 ; to create a configure-flag
887 ("libjpeg" ,libjpeg)
888 ("libpng" ,libpng)
889 ("libtiff" ,libtiff)
890 ("openexr" ,openexr)
891 ("python" ,python-2) ; print syntax
892 ("python2-numpy" ,python2-numpy)
893 ("zlib" ,zlib)))
894 (native-inputs
895 `(("doxygen" ,doxygen)
896 ("python2-nose" ,python2-nose)
556530c9 897 ("sphinx" ,python-sphinx)))
019b3875
AE
898 (arguments
899 `(#:test-target "check"
e32db0fa
RW
900 #:phases
901 (modify-phases %standard-phases
43696990 902 (add-after 'unpack 'disable-broken-tests
e32db0fa 903 (lambda _
43696990 904 ;; See https://github.com/ukoethe/vigra/issues/432
e32db0fa
RW
905 (substitute* "test/fourier/CMakeLists.txt"
906 (("VIGRA_ADD_TEST.*") ""))
43696990
MB
907 ;; This test fails with Numpy 1.15:
908 ;; <https://github.com/ukoethe/vigra/issues/436>.
909 (substitute* "vigranumpy/test/CMakeLists.txt"
910 (("test1\\.py") ""))
e32db0fa 911 #t)))
019b3875
AE
912 #:configure-flags
913 (list "-Wno-dev" ; suppress developer mode with lots of warnings
914 (string-append "-DVIGRANUMPY_INSTALL_DIR="
915 (assoc-ref %outputs "out")
916 "/lib/python2.7/site-packages")
917 ;; OpenEXR is not enabled by default.
918 "-DWITH_OPENEXR=1"
f803f775
LF
919 ;; Fix rounding error on 32-bit machines
920 "-DCMAKE_C_FLAGS=-ffloat-store"
019b3875
AE
921 ;; The header files of ilmbase are not found when included
922 ;; by the header files of openexr, and an explicit flag
923 ;; needs to be set.
924 (string-append "-DCMAKE_CXX_FLAGS=-I"
925 (assoc-ref %build-inputs "ilmbase")
f803f775
LF
926 "/include/OpenEXR"
927 " -ffloat-store"))))
019b3875
AE
928 (synopsis "Computer vision library")
929 (description
930 "VIGRA stands for Vision with Generic Algorithms. It is an image
97039f6e
AE
931processing and analysis library that puts its main emphasis on customizable
932algorithms and data structures. It is particularly strong for
933multi-dimensional image processing.")
019b3875 934 (license license:expat)
83273596 935 (home-page "https://ukoethe.github.io/vigra/")))
060ad3de 936
62813c10
FT
937(define-public vigra-c
938 (let* ((commit "a2ff675f42079e2623318d8ff8b4288dbe7a7f06")
939 (revision "0")
940 (version (git-version "0.0.0" revision commit)))
941 (package
942 (name "vigra-c")
943 (version version)
944 (home-page "https://github.com/BSeppke/vigra_c")
945 (source (origin
946 (method git-fetch)
947 (uri (git-reference
948 (url home-page)
949 (commit commit)))
950 (sha256
951 (base32
952 "1f1phmfbbz3dsq9330rd6bjmdg29hxskxi9l17cyx1f4mdqpgdgl"))
953 (file-name (git-file-name name version))))
954 (build-system cmake-build-system)
955 (arguments
956 `(#:tests? #f)) ; No test target.
957 (native-inputs
958 `(("doxygen" ,doxygen)))
959 (inputs
960 `(("fftw" ,fftw)
961 ("fftwf" ,fftwf)
962 ("vigra" ,vigra)))
963 (synopsis "C interface to the VIGRA computer vision library")
964 (description
965 "This package provides a C interface to the VIGRA C++ computer vision
966library. It is designed primarily to ease the implementation of higher-level
967language bindings to VIGRA.")
968 (license license:expat))))
969
060ad3de
TUBK
970(define-public libwebp
971 (package
972 (name "libwebp")
71cb7512 973 (version "1.0.2")
060ad3de
TUBK
974 (source
975 (origin
b981f777
MB
976 ;; No tarballs are provided for >0.6.1.
977 (method git-fetch)
978 (uri (git-reference
979 (url "https://chromium.googlesource.com/webm/libwebp")
980 (commit (string-append "v" version))))
981 (file-name (git-file-name name version))
060ad3de 982 (sha256
b2ed5ca7 983 (base32
71cb7512 984 "1ay0sai7f74dyk2gi975qfllmq534vnsx456npf16583mqb6ib2q"))))
060ad3de
TUBK
985 (build-system gnu-build-system)
986 (inputs
987 `(("freeglut" ,freeglut)
988 ("giflib" ,giflib)
989 ("libjpeg" ,libjpeg)
990 ("libpng" ,libpng)
991 ("libtiff" ,libtiff)))
b981f777
MB
992 (native-inputs
993 `(("autoconf" ,autoconf)
994 ("automake" ,automake)
995 ("libtool" ,libtool)))
060ad3de
TUBK
996 (arguments
997 '(#:configure-flags '("--enable-libwebpmux"
998 "--enable-libwebpdemux"
b981f777
MB
999 "--enable-libwebpdecoder")
1000 #:phases (modify-phases %standard-phases
1001 (add-after 'unpack 'bootstrap
1002 (lambda _
1003 (invoke "autoreconf" "-vif"))))))
060ad3de
TUBK
1004 (home-page "https://developers.google.com/speed/webp/")
1005 (synopsis "Lossless and lossy image compression")
1006 (description
1007 "WebP is a new image format that provides lossless and lossy compression
1eefe4a8
LC
1008for images. WebP lossless images are 26% smaller in size compared to
1009PNGs. WebP lossy images are 25-34% smaller in size compared to JPEG images at
1010equivalent SSIM index. WebP supports lossless transparency (also known as
1011alpha channel) with just 22% additional bytes. Transparency is also supported
060ad3de
TUBK
1012with lossy compression and typically provides 3x smaller file sizes compared
1013to PNG when lossy compression is acceptable for the red/green/blue color
1014channels.")
1015 (license license:bsd-3)))
b9ecd5ae
SB
1016
1017(define-public libmng
1018 (package
1019 (name "libmng")
1020 (version "2.0.3")
1021 (source (origin
1022 (method url-fetch)
0f971a04
LF
1023 (uri (string-append "mirror://sourceforge/libmng/libmng-devel/"
1024 version "/" name "-" version ".tar.xz"))
b9ecd5ae
SB
1025 (sha256
1026 (base32
1027 "1lvxnpds0vcf0lil6ia2036ghqlbl740c4d2sz0q5g6l93fjyija"))))
1028 (build-system gnu-build-system)
1029 (propagated-inputs
1030 ;; These are all in the 'Libs.private' field of libmng.pc.
1031 `(("lcms" ,lcms)
1032 ("libjpeg" ,libjpeg)
1033 ("zlib" ,zlib)))
1034 (home-page "http://www.libmng.com/")
1035 (synopsis "Library for handling MNG files")
1036 (description
1037 "Libmng is the MNG (Multiple-image Network Graphics) reference library.")
1038 (license license:bsd-3)))
3aab2c83 1039
023f0fb0
AK
1040(define-public exiv2
1041 (package
1042 (name "exiv2")
0e1c5ccc
TGR
1043 (version "0.27.1")
1044 (source
1045 (origin
1046 (method url-fetch)
1047 (uri (string-append "https://www.exiv2.org/builds/exiv2-" version
1048 "-Source.tar.gz"))
1049 (sha256
1050 (base32 "109hbfk63dh14fz20ivq20gcclb9jj9jmh48w4lcn6zxh1ljh9gi"))))
1051 (build-system cmake-build-system)
1052 (arguments '(#:tests? #f)) ; no test suite
023f0fb0
AK
1053 (propagated-inputs
1054 `(("expat" ,expat)
1055 ("zlib" ,zlib)))
993d8164 1056 (home-page "https://www.exiv2.org/")
023f0fb0
AK
1057 (synopsis "Library and command-line utility to manage image metadata")
1058 (description
1059 "Exiv2 is a C++ library and a command line utility to manage image
1060metadata. It provides fast and easy read and write access to the Exif, IPTC
1061and XMP metadata of images in various formats.")
1062
1063 ;; Files under `xmpsdk' are a copy of Adobe's XMP SDK, licensed under the
1064 ;; 3-clause BSD license: <http://www.adobe.com/devnet/xmp/sdk/eula.html>.
1065 ;; The core is GPLv2+:
1066 ;; <https://launchpad.net/ubuntu/precise/+source/exiv2/+copyright>.
1067 (license license:gpl2+)))
1068
3aab2c83
DT
1069(define-public devil
1070 (package
1071 (name "devil")
77ab6983 1072 (version "1.8.0")
3aab2c83
DT
1073 (source (origin
1074 (method url-fetch)
1075 (uri (string-append "http://downloads.sourceforge.net/openil/"
1076 "DevIL-" version ".tar.gz"))
1077 (sha256
1078 (base32
77ab6983
MB
1079 "02dpzvi493r09c9hfjnk54nladl3qw55iqkkg18g12fxwwz9fx80"))))
1080 (build-system cmake-build-system)
3aab2c83 1081 (arguments
77ab6983
MB
1082 '(;; XXX: Not supported in the released CMakeLists.txt.
1083 ;; Enable this for > 1.8.0.
1084 #:tests? #f
3aab2c83
DT
1085 #:phases
1086 (modify-phases %standard-phases
77ab6983
MB
1087 (add-before 'configure 'change-directory
1088 (lambda _ (chdir "DevIL") #t)))))
3aab2c83
DT
1089 (native-inputs
1090 `(("pkg-config" ,pkg-config)))
1091 (inputs
1092 `(("lcms" ,lcms)
77ab6983 1093 ("libjpeg" ,libjpeg-turbo)
3aab2c83
DT
1094 ("libmng" ,libmng)
1095 ("libpng" ,libpng)
1096 ("libtiff" ,libtiff)
1097 ("openexr" ,openexr)
1098 ("zlib" ,zlib)))
1099 (synopsis "Library for manipulating many image formats")
1100 (description "Developer's Image Library (DevIL) is a library to develop
1101applications with support for many types of images. DevIL can load, save,
1102convert, manipulate, filter and display a wide variety of image formats.")
1103 (home-page "http://openil.sourceforge.net")
1104 (license license:lgpl2.1+)))
b0b23e52
DT
1105
1106(define-public jasper
1107 (package
1108 (name "jasper")
8cc3983a 1109 (version "2.0.16")
b0b23e52 1110 (source (origin
d57b017c
RW
1111 (method git-fetch)
1112 (uri (git-reference
1113 (url "https://github.com/mdadams/jasper.git")
1114 (commit (string-append "version-" version))))
1115 (file-name (git-file-name name version))
b0b23e52
DT
1116 (sha256
1117 (base32
8cc3983a 1118 "05l75yd1zsxwv25ykwwwjs8961szv7iywf16nc6vc6qpby27ckv6"))))
c7a70c33 1119 (build-system cmake-build-system)
d87c201f 1120 (inputs `(("libjpeg" ,libjpeg)))
b0b23e52
DT
1121 (synopsis "JPEG-2000 library")
1122 (description "The JasPer Project is an initiative to provide a reference
1123implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e.,
1124ISO/IEC 15444-1).")
1125 (home-page "https://www.ece.uvic.ca/~frodo/jasper/")
1126 (license (license:x11-style "file://LICENSE"))))
365a4a7f
EF
1127
1128(define-public zimg
1129 (package
1130 (name "zimg")
60092c18 1131 (version "2.5")
365a4a7f
EF
1132 (source
1133 (origin
ba185e2a
RW
1134 (method git-fetch)
1135 (uri (git-reference
1136 (url "https://github.com/sekrit-twc/zimg.git")
1137 (commit (string-append "release-" version))))
1138 (file-name (git-file-name name version))
365a4a7f
EF
1139 (sha256
1140 (base32
ba185e2a 1141 "05krggiifbl6hyg2j3z8qz2k7si84g1qg9snhsnf1ml7mrhqhhlr"))))
365a4a7f
EF
1142 (build-system gnu-build-system)
1143 (native-inputs
1144 `(("autoconf" ,autoconf)
1145 ("automake" ,automake)
1146 ("libtool" ,libtool)))
1147 (arguments
1148 '(#:phases
1149 (modify-phases %standard-phases
1150 (add-after 'unpack 'autogen
1151 (lambda _
fccacffb 1152 (invoke "sh" "autogen.sh"))))))
365a4a7f
EF
1153 (synopsis "Scaling, colorspace conversion, and dithering library")
1154 (description "Zimg implements the commonly required image processing basics
1155of scaling, colorspace conversion, and depth conversion. A simple API enables
1156conversion between any supported formats to operate with minimal knowledge from
1157the programmer.")
1158 (home-page "https://github.com/sekrit-twc/zimg")
8ee04627 1159 ;; test/extra/ contains musl-libm,
365a4a7f 1160 ;; which is MIT/expat licensed, but only used for tests
f62e7ce4 1161 (license license:wtfpl2)))
af7aaaeb
TGR
1162
1163(define-public perceptualdiff
1164 (package
1165 (name "perceptualdiff")
1166 (version "1.3")
1167 (source
1168 (origin
be59c48d
TGR
1169 (method git-fetch)
1170 (uri (git-reference
1171 (url "https://github.com/myint/perceptualdiff.git")
1172 (commit (string-append "v" version))))
1173 (file-name (git-file-name name version))
1174 (sha256
1175 (base32 "0yys55f9i9g3wjjg0j2m0p0k21zwnid8520a8lrr30khm4k5gibp"))))
af7aaaeb
TGR
1176 (build-system cmake-build-system)
1177 (inputs `(("freeimage" ,freeimage)))
1178 (arguments
1179 '(#:phases (modify-phases %standard-phases
1180 (add-after 'unpack 'fix-tests
1181 ;; cmake-build-system uses a build/ directory outside
1182 ;; of the source tree, one level higher than expected
1183 (lambda _
1184 (substitute* "test/run_tests.bash"
fccacffb
MW
1185 (("../build") "../../build"))
1186 #t)))))
af7aaaeb
TGR
1187 (home-page "https://github.com/myint/perceptualdiff")
1188 (synopsis "Perceptual image comparison utility")
1189 (description "PerceptualDiff visually compares two images to determine
1190whether they look alike. It uses a computational model of the human visual
1191system to detect similarities. This allows it too see beyond irrelevant
1192differences in file encoding, image quality, and other small variations.")
1193 (license license:gpl2+)))
1fa3e336
EB
1194
1195(define-public steghide
1196 (package
1197 (name "steghide")
1198 (version "0.5.1")
1199 (source (origin
1200 (method url-fetch)
1201 (uri (string-append "mirror://sourceforge/steghide/steghide/"
1202 version "/steghide-" version ".tar.bz2"))
1203 (sha256
1204 (base32
1205 "18bxlhbdc3zsmxj84i417xjh0q28kv26q449k23n0a72ldwziix2"))
1206 (patches (list (search-patch "steghide-fixes.patch")))))
1207 (build-system gnu-build-system)
1208 (native-inputs
7c90d0f4 1209 `(("gettext" ,gettext-minimal)
1fa3e336
EB
1210 ("libtool" ,libtool)
1211 ("perl" ,perl))) ;for tests
1212 (inputs
1213 `(("libmhash" ,libmhash)
1214 ("libmcrypt" ,libmcrypt)
1215 ("libjpeg" ,libjpeg)
1216 ("zlib" ,zlib)))
1217 (arguments
a56bf101
LC
1218 `(#:make-flags '("CXXFLAGS=-fpermissive") ;required for MHashPP.cc
1219
1220 #:phases (modify-phases %standard-phases
1221 (add-before 'configure 'set-perl-search-path
1222 (lambda _
1223 ;; Work around "dotless @INC" build failure.
1224 (setenv "PERL5LIB"
1225 (string-append (getcwd) "/tests:"
1226 (getenv "PERL5LIB")))
1227 #t)))))
1fa3e336
EB
1228 (home-page "http://steghide.sourceforge.net")
1229 (synopsis "Image and audio steganography")
1230 (description
7832785d
TGR
1231 "Steghide is a program to hide data in various kinds of image and audio
1232files (known as @dfn{steganography}). Neither color nor sample frequencies are
1233changed, making the embedding resistant against first-order statistical tests.")
1fa3e336 1234 (license license:gpl2+)))
ac2a38a5
RW
1235
1236(define-public stb-image-for-extempore
1237 (let ((revision "1")
1238 (commit "152a250a702bf28951bb0220d63bc0c99830c498"))
1239 (package
1240 (name "stb-image-for-extempore")
1241 (version (string-append "0-" revision "." (string-take commit 9)))
1242 (source
1243 (origin (method git-fetch)
1244 (uri (git-reference
1245 (url "https://github.com/extemporelang/stb.git")
1246 (commit commit)))
1247 (sha256
1248 (base32
1249 "0y0aa20pj9311x2ii06zg8xs34idg14hfgldqc5ymizc6cf1qiqv"))
1250 (file-name (string-append name "-" version "-checkout"))))
1251 (build-system cmake-build-system)
1252 (arguments `(#:tests? #f)) ; no tests included
39162ee4
RW
1253 ;; Extempore refuses to build on architectures other than x86_64
1254 (supported-systems '("x86_64-linux"))
ac2a38a5
RW
1255 (home-page "https://github.com/extemporelang/stb")
1256 (synopsis "Image library for Extempore")
1257 (description
1258 "This package is a collection of assorted single-file libraries. Of
1259all included libraries only the image loading and decoding library is
1260installed as @code{stb_image}.")
1261 (license license:public-domain))))
93117227
AI
1262
1263(define-public optipng
1264 (package
1265 (name "optipng")
bbf8832f 1266 (version "0.7.7")
93117227
AI
1267 (source
1268 (origin
1269 (method url-fetch)
1270 (uri (string-append "http://prdownloads.sourceforge.net/optipng/optipng-"
1271 version ".tar.gz"))
1272 (sha256
1273 (base32
64ed4b6a
EF
1274 "0lj4clb851fzpaq446wgj0sfy922zs5l5misbpwv6w7qrqrz4cjg"))
1275 (modules '((guix build utils)))
1276 (snippet
1277 '(begin
1278 (delete-file-recursively "src/libpng")
1279 (delete-file-recursively "src/zlib")
1280 #t))))
93117227
AI
1281 (build-system gnu-build-system)
1282 (inputs
64ed4b6a
EF
1283 `(("libpng" ,libpng)
1284 ("zlib" ,zlib)))
93117227
AI
1285 (arguments
1286 '(#:phases
1287 (modify-phases %standard-phases
93117227
AI
1288 (replace 'configure
1289 (lambda* (#:key outputs #:allow-other-keys)
bbf8832f
TGR
1290 ;; configure script doesn't accept arguments CONFIG_SHELL and SHELL
1291 (invoke "sh" "configure"
64ed4b6a
EF
1292 (string-append "--prefix=" (assoc-ref outputs "out"))
1293 "-with-system-libs")
bbf8832f
TGR
1294 #t)))))
1295 (synopsis "Optimizer that recompresses PNG image files to a smaller size")
93117227
AI
1296 (description "OptiPNG is a PNG optimizer that recompresses image
1297files to a smaller size, without losing any information. This program
1298also converts external formats (BMP, GIF, PNM and TIFF) to optimized
1299PNG, and performs PNG integrity checks and corrections.")
1300 (home-page "http://optipng.sourceforge.net/")
1301 (license license:zlib)))
37e05d64
TGR
1302
1303(define-public libjpeg-turbo
1304 (package
1305 (name "libjpeg-turbo")
92f19f13 1306 (version "2.0.1")
02961420 1307 (replacement libjpeg-turbo-2.0.2)
37e05d64
TGR
1308 (source (origin
1309 (method url-fetch)
ec92d786
MB
1310 (uri (string-append "mirror://sourceforge/libjpeg-turbo/"
1311 version "/libjpeg-turbo-" version ".tar.gz"))
37e05d64
TGR
1312 (sha256
1313 (base32
92f19f13 1314 "1zv6z093l3x3jzygvni7b819j7xhn6d63jhcdrckj7fz67n6ry75"))))
6871121b 1315 (build-system cmake-build-system)
37e05d64
TGR
1316 (native-inputs
1317 `(("nasm" ,nasm)))
1318 (arguments
6871121b
MB
1319 '(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR:PATH=lib"
1320 "-DENABLE_STATIC=0")))
a77de47a 1321 (home-page "https://libjpeg-turbo.org/")
37e05d64
TGR
1322 (synopsis "SIMD-accelerated JPEG image handling library")
1323 (description "libjpeg-turbo is a JPEG image codec that accelerates baseline
1324JPEG compression and decompression using SIMD instructions: MMX on x86, SSE2 on
1325x86-64, NEON on ARM, and AltiVec on PowerPC processors. Even on other systems,
1326its highly-optimized Huffman coding routines allow it to outperform libjpeg by
1327a significant amount.
1328libjpeg-turbo implements both the traditional libjpeg API and the less powerful
1329but more straightforward TurboJPEG API, and provides a full-featured Java
1330interface. It supports color space extensions that allow it to compress from
1331and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.).")
71de61c3
MB
1332 ;; libjpeg-turbo is covered by three different licenses; see LICENSE.md.
1333 (license (list license:bsd-3 ;the TurboJPEG API library and programs
1334 license:ijg ;the libjpeg library and associated tools
1335 license:zlib)))) ;the libjpeg-turbo SIMD extensions
21122bd7 1336
02961420
MB
1337(define-public libjpeg-turbo-2.0.2
1338 (package
1339 (inherit libjpeg-turbo)
1340 (version "2.0.2")
1341 (source (origin
1342 (inherit (package-source libjpeg-turbo))
1343 (uri (string-append "mirror://sourceforge/libjpeg-turbo/"
1344 version "/libjpeg-turbo-" version ".tar.gz"))
1345 (sha256
1346 (base32
1347 "1v9gx1gdzgxf51nd55ncq7rghmj4x9x91rby50ag36irwngmkf5c"))))))
1348
21122bd7
JD
1349(define-public niftilib
1350 (package
f729a4d8
RW
1351 (name "niftilib")
1352 (version "2.0.0")
1353 (source (origin
1354 (method url-fetch)
1355 (uri (list (string-append "mirror://sourceforge/niftilib/"
1356 "nifticlib/nifticlib_"
1357 (string-join (string-split version #\.) "_")
1358 "/nifticlib-" version ".tar.gz")))
1359 (sha256
1360 (base32 "123z9bwzgin5y8gi5ni8j217k7n683whjsvg0lrpii9flgk8isd3"))))
1361 (build-system gnu-build-system)
1362 (arguments
1363 '(#:tests? #f ; there is no test target
1364 #:parallel-build? #f ; not supported
1365 #:make-flags
1366 (list "SHELL=bash"
1367 (string-append "ZLIB_INC="
1368 (assoc-ref %build-inputs "zlib") "/include")
1369 ;; Append "-fPIC" to CFLAGS.
1370 (string-append "CFLAGS="
1371 "-Wall -ansi -pedantic -fPIC"))
1372 #:phases
1373 (modify-phases %standard-phases
1374 (replace 'install
1375 (lambda* (#:key outputs #:allow-other-keys)
1376 (let ((out (assoc-ref outputs "out")))
1377 (for-each
1378 (lambda (dir)
1379 (copy-recursively dir (string-append out "/" dir)))
1380 '("bin" "lib" "include")))
1381 #t))
1382 (delete 'configure))))
1383 (inputs
1384 `(("zlib" ,zlib)))
1385 (synopsis "Library for reading and writing files in the nifti-1 format")
1386 (description "Niftilib is a set of i/o libraries for reading and writing
21122bd7
JD
1387files in the nifti-1 data format - a binary file format for storing
1388medical image data, e.g. magnetic resonance image (MRI) and functional MRI
1389(fMRI) brain images.")
f729a4d8
RW
1390 (home-page "http://niftilib.sourceforge.net")
1391 (license license:public-domain)))
f2079849
JL
1392
1393(define-public gpick
1394 (package
1395 (name "gpick")
1396 (version "0.2.5")
1397 (source (origin
94be94cf
RW
1398 (method git-fetch)
1399 (uri (git-reference
1400 (url "https://github.com/thezbyg/gpick.git")
1401 (commit (string-append name "-" version))))
1402 (file-name (git-file-name name version))
f2079849
JL
1403 (sha256
1404 (base32
94be94cf 1405 "0mcj806zagh122qgrdkrg0macpzby97y89xi2sjyn3bh8vmmyxjy"))))
2235abb2 1406 (build-system scons-build-system)
f2079849
JL
1407 (native-inputs
1408 `(("boost" ,boost)
1409 ("gettext" ,gnu-gettext)
2235abb2 1410 ("pkg-config" ,pkg-config)))
f2079849
JL
1411 (inputs
1412 `(("expat" ,expat)
1413 ("gtk2" ,gtk+-2)
1414 ("lua" ,lua-5.2)))
1415 (arguments
1416 `(#:tests? #f
2235abb2
AI
1417 #:scons ,scons-python2
1418 #:scons-flags (list (string-append "DESTDIR=" %output))
f2079849
JL
1419 #:phases
1420 (modify-phases %standard-phases
1421 (add-before 'build 'fix-lua-reference
1422 (lambda _
1423 (substitute* "SConscript"
1424 (("lua5.2") "lua-5.2"))
2235abb2 1425 #t)))))
f2079849
JL
1426 (home-page "http://www.gpick.org/")
1427 (synopsis "Color picker")
1428 (description "Gpick is an advanced color picker and palette editing tool.")
1429 (license license:bsd-3)))
bc806b0c
LF
1430
1431(define-public libiptcdata
1432 (package
1433 (name "libiptcdata")
a42b6848 1434 (version "1.0.5")
bc806b0c
LF
1435 (source (origin
1436 (method url-fetch)
a42b6848
TGR
1437 (uri (string-append "https://github.com/ianw/libiptcdata"
1438 "/releases/download/release_"
1439 (string-join (string-split version #\.) "_")
1440 "/" name "-" version ".tar.gz"))
bc806b0c
LF
1441 (sha256
1442 (base32
a42b6848 1443 "17m2bscc76r1bymjgb44fbbfrdsjfqyb2ivg9wchyllm8pgx1560"))))
bc806b0c 1444 (build-system gnu-build-system)
a42b6848 1445 (home-page "https://github.com/ianw/libiptcdata")
bc806b0c 1446 (synopsis "IPTC metadata manipulation library")
a09a2119
TGR
1447 (description
1448 "Libiptcdata is a C library for manipulating the International Press
1449Telecommunications Council (@dfn{IPTC}) metadata stored within multimedia files
bc806b0c
LF
1450such as images. This metadata can include captions and keywords, often used by
1451popular photo management applications. The library provides routines for
1452parsing, viewing, modifying, and saving this metadata.")
1453 (license license:lgpl2.0+)))
84567657
OP
1454
1455(define-public flameshot
1456 (package
1457 (name "flameshot")
1458 (version "0.5.1")
1459 (source
1460 (origin
743600e9
RW
1461 (method git-fetch)
1462 (uri (git-reference
1463 (url "https://github.com/lupoDharkael/flameshot.git")
1464 (commit (string-append "v" version))))
1465 (file-name (git-file-name name version))
84567657
OP
1466 (sha256
1467 (base32
743600e9 1468 "13h77np93r796jf289v4r687cmnpqkyqs34dm9gif4akaig74ky0"))))
84567657
OP
1469 (build-system gnu-build-system)
1470 (native-inputs
1471 `(("qttools" ,qttools)))
1472 (inputs
1473 `(("qtbase" ,qtbase)))
1474 (arguments
1475 `(#:tests? #f ; no tests
1476 #:phases
1477 (modify-phases %standard-phases
1478 (replace 'configure
1479 (lambda* (#:key outputs #:allow-other-keys)
1480 (invoke "qmake"
1481 "CONFIG+=packaging"
1482 (string-append "BASEDIR=" (assoc-ref outputs "out"))
1483 "PREFIX=/"))))))
1484 (home-page "https://github.com/lupoDharkael/flameshot")
1485 (synopsis "Powerful yet simple to use screenshot software")
1486 (description "Flameshot is a screenshot program.
1487Features:
1488
1489@itemize
1490@item Customizable appearance.
1491@item Easy to use.
1492@item In-app screenshot edition.
1493@item DBus interface.
1494@item Upload to Imgur.
1495@end itemize\n")
1496 (license license:gpl3+)))
da4dde61
LF
1497
1498(define-public r-jpeg
1499 (package
1500 (name "r-jpeg")
1501 (version "0.1-8")
1502 (source
1503 (origin
1504 (method url-fetch)
1505 (uri (cran-uri "jpeg" version))
1506 (sha256
1507 (base32
1508 "05hawv5qcb82ljc1l2nchx1wah8mq2k2kfkhpzyww554ngzbwcnh"))))
1509 (build-system r-build-system)
1510 (inputs `(("libjpeg" ,libjpeg)))
1511 (home-page "http://www.rforge.net/jpeg/")
1512 (synopsis "Read and write JPEG images with R")
1513 (description "This package provides a way to read, write and display bitmap
1514images stored in the JPEG format with R. It can read and write both files and
1515in-memory raw vectors.")
1516 (license license:gpl2+)))
0d529a7c
PN
1517
1518(define-public gifsicle
1519 (package
1520 (name "gifsicle")
5c46e1dd 1521 (version "1.92")
0d529a7c
PN
1522 (source
1523 (origin
1524 (method url-fetch)
645b6c7f 1525 (uri (string-append "https://www.lcdf.org/gifsicle/gifsicle-"
0d529a7c
PN
1526 version ".tar.gz"))
1527 (sha256
5c46e1dd 1528 (base32 "0rffpzxcak19k6cngpxn73khvm3z1gswrqs90ycdzzb53p05ddas"))))
0d529a7c
PN
1529 (build-system gnu-build-system)
1530 (arguments
1531 '(#:phases
1532 (modify-phases %standard-phases
1533 (add-before 'check 'patch-tests
1534 (lambda _
1535 (substitute* "test/testie"
1536 (("/usr/bin/perl")
1537 (which "perl"))
1538 (("/bin/sh")
1539 (which "sh"))
1540 (("/bin/rm")
1541 (which "rm")))
1542 #t)))))
5c46e1dd 1543 (native-inputs `(("perl" ,perl))) ; only for tests
0d529a7c 1544 (inputs `(("libx11" ,libx11)))
645b6c7f 1545 (home-page "https://www.lcdf.org/gifsicle/")
0d529a7c
PN
1546 (synopsis "Edit GIF images and animations")
1547 (description "Gifsicle is a command-line GIF image manipulation tool that:
1548
1549@itemize
1550@item Provides a batch mode for changing GIFs in place.
1551@item Prints detailed information about GIFs, including comments.
1552@item Control over interlacing, comments, looping, transparency, etc.
1553@item Creates well-behaved GIFs: removes redundant colors, only uses local color
1554tables, etc.
1555@item Shrinks colormaps and change images to use the Web-safe palette.
1556@item Optimizes GIF animations, or unoptimizes them for easier editing.
1557@end itemize
1558
1559Two other programs are included with Gifsicle: @command{gifview} is a
1560lightweight animated-GIF viewer, and @command{gifdiff} compares two GIFs for
1561identical visual appearance.")
1562 (license license:gpl2+)))
3239dcd3
PAR
1563
1564(define-public jp2a
1565 (package
1566 (name "jp2a")
1567 (version "1.0.7")
1568 (source
1569 (origin
5bc593df
RW
1570 (method git-fetch)
1571 (uri (git-reference
1572 (url "https://github.com/cslarsen/jp2a.git")
1573 (commit (string-append "v" version))))
1574 (file-name (git-file-name name version))
3239dcd3
PAR
1575 (sha256
1576 (base32
5bc593df 1577 "12a1z9ba2j16y67f41y8ax5sgv1wdjd71pg7circdxkj263n78ql"))))
3239dcd3
PAR
1578 (build-system gnu-build-system)
1579 (inputs
1580 `(("libjpeg" ,libjpeg)
1581 ("curl" ,curl)))
1582 (native-inputs
1583 `(("autoconf" ,autoconf)
1584 ("automake" ,automake)
1585 ("pkg-config" ,pkg-config)))
1586 (home-page "https://csl.name/jp2a/")
1587 (synopsis "Convert JPEG images to ASCII")
1588 (description
1589 "Jp2a is a small utility that converts JPEG images to ASCII.")
1590 (license license:gpl2)))
0290f533
RH
1591
1592(define-public grim
1593 (package
444c4c08 1594 (name "grim")
501d4b33 1595 (version "1.2.0")
444c4c08
RH
1596 (source
1597 (origin
90c7ea44
TGR
1598 (method git-fetch)
1599 (uri (git-reference
1600 (url "https://github.com/emersion/grim.git")
1601 (commit (string-append "v" version))))
1602 (file-name (git-file-name name version))
444c4c08 1603 (sha256
501d4b33 1604 (base32 "0brljl4zfbn5mh9hkfrfkvd27c5y9vdkgap9r1hrfy9r1x20sskn"))))
444c4c08
RH
1605 (build-system meson-build-system)
1606 (native-inputs `(("pkg-config" ,pkg-config)))
1607 (inputs `(("cairo" ,cairo)
1608 ("libjpeg-turbo" ,libjpeg-turbo)
1609 ("scdoc" ,scdoc)
1610 ("wayland" ,wayland)
1611 ("wayland-protocols" ,wayland-protocols)))
1612 (home-page "https://github.com/emersion/grim")
1613 (synopsis "Create screenshots from a Wayland compositor")
1614 (description "grim can create screenshots from a Wayland compositor.")
1615 ;; MIT license.
1616 (license license:expat)))
bd86a1be
RH
1617
1618(define-public slurp
1619 (package
1620 (name "slurp")
7d5113e5 1621 (version "1.2.0")
bd86a1be
RH
1622 (source
1623 (origin
1624 (method git-fetch)
1625 (uri (git-reference
1626 (url "https://github.com/emersion/slurp.git")
1627 (commit (string-append "v" version))))
1628 (file-name (git-file-name name version))
1629 (sha256
7d5113e5 1630 (base32 "0580m6kaiilgsrcj608r837r37sl6a25y7w21p7d6ij20fs3gvg1"))))
bd86a1be
RH
1631 (build-system meson-build-system)
1632 (native-inputs `(("pkg-config" ,pkg-config)))
1633 (inputs `(("cairo" ,cairo)
1634 ("scdoc" ,scdoc)
1635 ("wayland" ,wayland)
1636 ("wayland-protocols" ,wayland-protocols)))
1637 (home-page "https://github.com/emersion/slurp")
1638 (synopsis "Select a region in a Wayland compositor")
1639 (description "Slurp can select a region in a Wayland compositor and print it
1640to the standard output. It works well together with grim.")
1641 ;; MIT license.
1642 (license license:expat)))