gnu: Add emacs-highlight-sexp.
[jackhill/guix/guix.git] / gnu / packages / photo.scm
CommitLineData
9208d0c1 1;;; GNU Guix --- Functional package management for GNU
3246cc91 2;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
d9cef612 3;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
341f4965 4;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
d16479c5 5;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
c49840f8 6;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
9208d0c1
LC
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23(define-module (gnu packages photo)
0e6412c1 24 #:use-module (guix build-system cmake)
9208d0c1 25 #:use-module (guix build-system gnu)
b138ec94 26 #:use-module (guix build-system perl)
f0644195
AE
27 #:use-module (guix download)
28 #:use-module ((guix licenses) #:prefix license:)
29 #:use-module (guix packages)
8957241d 30 #:use-module (guix utils)
9208d0c1 31 #:use-module (gnu packages autotools)
f0644195 32 #:use-module (gnu packages base)
8957241d 33 #:use-module (gnu packages boost)
0e6412c1 34 #:use-module (gnu packages compression)
8957241d
AE
35 #:use-module (gnu packages ghostscript)
36 #:use-module (gnu packages gl)
c49840f8 37 #:use-module (gnu packages glib)
8957241d 38 #:use-module (gnu packages graphics)
0e6412c1 39 #:use-module (gnu packages image)
8957241d 40 #:use-module (gnu packages imagemagick)
f0644195 41 #:use-module (gnu packages libusb)
d16479c5 42 #:use-module (gnu packages man)
8957241d 43 #:use-module (gnu packages maths)
b138ec94 44 #:use-module (gnu packages perl)
f0644195
AE
45 #:use-module (gnu packages pkg-config)
46 #:use-module (gnu packages popt)
8957241d 47 #:use-module (gnu packages readline)
8f9ac901 48 #:use-module (gnu packages tex)
8957241d
AE
49 #:use-module (gnu packages web)
50 #:use-module (gnu packages xfig)
51 #:use-module (gnu packages xml))
9208d0c1 52
d9cef612
RW
53(define-public libraw
54 (package
55 (name "libraw")
b280e67c 56 (version "0.17.2")
d9cef612
RW
57 (source (origin
58 (method url-fetch)
59 (uri (string-append "http://www.libraw.org/data/LibRaw-"
60 version ".tar.gz"))
61 (sha256
62 (base32
b280e67c 63 "0p6imxpsfn82i0i9w27fnzq6q6gwzvb9f7sygqqakv36fqnc9c4j"))))
d9cef612
RW
64 (build-system gnu-build-system)
65 (home-page "http://www.libraw.org")
66 (synopsis "Raw image decoder")
67 (description
68 "LibRaw is a library for reading RAW files obtained from digital photo
69cameras (CRW/CR2, NEF, RAF, DNG, and others).")
341f4965 70 (license license:lgpl2.1+)))
d9cef612 71
9208d0c1
LC
72(define-public libexif
73 (package
74 (name "libexif")
75 (version "0.6.21")
76 (source (origin
77 (method url-fetch)
de67e922
LF
78 (uri (string-append "mirror://sourceforge/libexif/libexif/"
79 version "/libexif-" version ".tar.bz2"))
9208d0c1
LC
80 (sha256
81 (base32
82 "06nlsibr3ylfwp28w8f5466l6drgrnydgxrm4jmxzrmk5svaxk8n"))))
83 (build-system gnu-build-system)
84 (home-page "http://libexif.sourceforge.net/")
85 (synopsis "Read and manipulate EXIF data in digital photographs")
86 (description
87 "The libexif C library allows applications to read, edit, and save EXIF
88data as produced by digital cameras.")
341f4965 89 (license license:lgpl2.1+)))
9208d0c1
LC
90
91(define-public libgphoto2
92 (package
93 (name "libgphoto2")
69874f5f 94 (version "2.5.11")
9208d0c1
LC
95 (source (origin
96 (method url-fetch)
de67e922
LF
97 (uri (string-append "mirror://sourceforge/gphoto/libgphoto/"
98 version "/libgphoto2-" version ".tar.bz2"))
9208d0c1
LC
99 (sha256
100 (base32
69874f5f 101 "1ap070zz6l4kn2mbyxb1yj4x5ar8hpdbmf2pvjxgnly1ss319dkz"))))
9208d0c1
LC
102 (build-system gnu-build-system)
103 (native-inputs `(("pkg-config" ,pkg-config)))
104 (inputs
7e49a851 105 `(("libjpeg-turbo" ,libjpeg-turbo)
3246cc91 106 ("libltdl" ,libltdl)
d32f4800
TGR
107 ("libusb" ,libusb)
108 ("libxml2" ,libxml2)))
9208d0c1
LC
109 (propagated-inputs
110 `(;; The .pc refers to libexif.
111 ("libexif" ,libexif)))
112 (home-page "http://www.gphoto.org/proj/libgphoto2/")
113 (synopsis "Accessing digital cameras")
114 (description
115 "This is the library backend for gphoto2. It contains the code for PTP,
116MTP, and other vendor specific protocols for controlling and transferring data
117from digital cameras.")
118
119 ;; 'COPYING' says LGPLv2.1+, but in practices files are under LGPLv2+.
341f4965 120 (license license:lgpl2.1+)))
9208d0c1
LC
121
122(define-public gphoto2
123 (package
124 (name "gphoto2")
f6c44a3f 125 (version "2.5.11")
9208d0c1
LC
126 (source (origin
127 (method url-fetch)
de67e922
LF
128 (uri (string-append "mirror://sourceforge/gphoto/gphoto/" version
129 "/gphoto2-" version ".tar.bz2"))
9208d0c1
LC
130 (sha256
131 (base32
f6c44a3f 132 "1sgr6rsvzzagcwhc8fxbnvz3k02wr2hab0vrbvcb04k5l3b48a1r"))))
9208d0c1
LC
133 (build-system gnu-build-system)
134 (native-inputs
135 `(("pkg-config" ,pkg-config)))
136 (inputs
137 `(("readline" ,readline)
7e49a851 138 ("libjpeg-turbo" ,libjpeg-turbo)
9208d0c1
LC
139 ("popt" ,popt)
140 ("libexif" ,libexif)
141 ("libgphoto2" ,libgphoto2)))
142 (arguments
143 '(#:phases (alist-cons-before
144 'check 'pre-check
145 (lambda* (#:key inputs #:allow-other-keys)
146 (substitute* (find-files "tests/data" "\\.param$")
147 (("/usr/bin/env")
148 (which "env"))))
149 %standard-phases)
150
151 ;; FIXME: There are 2 test failures, most likely related to the build
152 ;; environment.
153 #:tests? #f))
154
155 (home-page "http://www.gphoto.org/")
156 (synopsis "Command-line tools to access digital cameras")
157 (description
158 "Gphoto2 is a set of command line utilities for manipulating a large
159number of different digital cameras. Through libgphoto2, it supports PTP,
160MTP, and much more.")
161
162 ;; Files are typically under LGPLv2+, but 'COPYING' says GPLv2+.
341f4965 163 (license license:gpl2+)))
b138ec94
LC
164
165(define-public perl-image-exiftool
166 (package
167 (name "perl-image-exiftool")
ae6591ef 168 (version "10.40")
b138ec94
LC
169 (source (origin
170 (method url-fetch)
171 (uri (string-append
172 "mirror://cpan/authors/id/E/EX/EXIFTOOL/Image-ExifTool-"
173 version ".tar.gz"))
174 (sha256
175 (base32
ae6591ef 176 "1p05d9k94win8a24cr7lsllb6wjl3dagsmdbcxzv6f68z7i1jdly"))))
b138ec94
LC
177 (build-system perl-build-system)
178 (arguments
179 '(#:phases (alist-cons-after
180 'install 'post-install
181 (lambda* (#:key outputs #:allow-other-keys)
182 ;; Make sure the 'exiftool' commands finds the library.
183 ;; XXX: Shouldn't it be handled by PERL-BUILD-SYSTEM?
184 (let* ((out (assoc-ref outputs "out"))
185 (pm (find-files out "^ExifTool\\.pm$"))
186 (lib (dirname (dirname (car pm)))))
187 (wrap-program (string-append out "/bin/exiftool")
188 `("PERL5LIB" prefix (,lib)))))
189 %standard-phases)))
67abcc05 190 (home-page "http://search.cpan.org/dist/Image-ExifTool")
ae6591ef
LF
191 (synopsis "Program and Perl library to manipulate EXIF and other metadata")
192 (description "This package provides the @code{exiftool} command and the
193@code{Image::ExifTool} Perl library to manipulate EXIF tags of digital images
194and a wide variety of other metadata.")
b138ec94 195 (license (package-license perl))))
0e6412c1
AE
196
197(define-public libpano13
198 (package
199 (name "libpano13")
200 (version "2.9.19")
201 (source (origin
202 (method url-fetch)
203 (uri (string-append "mirror://sourceforge/panotools/libpano13/"
204 "libpano13-" version "/"
205 "libpano13-" version ".tar.gz"))
206 (sha256
207 (base32
208 "1a4m3plmfcrrplqs9zfzhc5apibn10m5sajpizm1sd3q74w5fwq3"))))
209 (build-system cmake-build-system)
210 (inputs
211 `(("libjpeg" ,libjpeg)
212 ("libpng" ,libpng)
213 ("libtiff" ,libtiff)
214 ("zlib" ,zlib)))
215 (home-page "http://panotools.sourceforge.net/")
216 (synopsis "Library for panoramic images")
217 (description
218 "The libpano13 package contains the backend library written by the
219Panorama Tools project for building panoramic images from a set of
220overlapping images, as well as some command line tools.")
221 (license license:gpl2+)))
8957241d
AE
222
223(define-public enblend-enfuse
224 (package
225 (name "enblend-enfuse")
d16479c5 226 (version "4.2")
8957241d
AE
227 (source (origin
228 (method url-fetch)
229 (uri (string-append "mirror://sourceforge/enblend/"
230 name "/"
231 name "-" (version-major+minor version) "/"
232 name "-" version ".tar.gz"))
233 (sha256
234 (base32
d16479c5 235 "0j5x011ilalb47ssah50ag0a4phgh1b0wdgxdbbp1gcyjcjf60w7"))))
8957241d
AE
236 (build-system gnu-build-system)
237 (native-inputs
238 `(("pkg-config" ,pkg-config)
239 ("perl" ,perl)
240 ("perl-timedate" ,perl-timedate)
241 ;; for building the documentation
242 ("gnuplot" ,gnuplot)
d16479c5 243 ("help2man" ,help2man)
8957241d
AE
244 ("imagemagick" ,imagemagick)
245 ("libxml2" ,libxml2)
d16479c5 246 ("texlive-minimal" ,texlive-minimal)
8957241d
AE
247 ("tidy" ,tidy)
248 ("transfig" ,transfig)))
249 (inputs
250 `(("boost" ,boost)
251 ("gsl" ,gsl)
252 ("lcms" ,lcms)
253 ("libjpeg" ,libjpeg)
254 ("libpng" ,libpng)
255 ("libtiff" ,libtiff)
256 ("openexr" ,openexr)
257 ("vigra" ,vigra)
258 ("zlib" ,zlib)))
259 (arguments
260 `(#:configure-flags `("--enable-openmp")))
261 (home-page "http://enblend.sourceforge.net/")
262 (synopsis "Tools for combining and blending images")
263 (description
264 "Enblend blends away the seams in a panoramic image mosaic using a
265multi-resolution spline. Enfuse merges different exposures of the same
266scene to produce an image that looks much like a tone-mapped image.")
267 (license license:gpl2+)))
c49840f8
RJ
268
269(define-public lensfun
270 (package
271 (name "lensfun")
272 (version "0.3.2")
273 (source (origin
274 (method url-fetch)
275 (uri (string-append
276 "mirror://sourceforge/lensfun/"
277 version "/lensfun-" version ".tar.gz"))
278 (sha256
279 (base32
280 "0cfk8jjhs9nbfjfdy98plrj9ayi59aph0nx6ppslgjhlcvacm2xf"))))
281 (build-system cmake-build-system)
282 (arguments `(#:tests? #f)) ; There are no tests to run.
283 (native-inputs
284 `(("pkg-config" ,pkg-config)))
285 (inputs
286 `(("glib" ,glib)))
287 (home-page "https://sourceforge.net/projects/lensfun/")
288 (synopsis "Library to correct optical lens defects with a lens database")
289 (description "Digital photographs are not ideal. Of course, the better is
290your camera, the better the results will be, but in any case if you look
291carefully at shots taken even by the most expensive cameras equipped with the
292most expensive lenses you will see various artifacts. It is very hard to make
293ideal cameras, because there are a lot of factors that affect the final image
294quality, and at some point camera and lens designers have to trade one factor
295for another to achieve the optimal image quality, within the given design
296restrictions and budget. But we all want ideal shots, don't we? So that's
297what's Lensfun is all about: rectifying the defects introduced by your
298photographic equipment.")
299 ;; The libraries are licensed under the LGPL3, the programs are
300 ;; licensed GPL3, and the database is license CC-BY-SA 3.0. See the
301 ;; README.md file for this clarification.
302 (license (list license:lgpl3 license:gpl3 license:cc-by-sa3.0))))