gnu: icecat: Update to 78.10.0-guix0-preview1 [security fixes].
[jackhill/guix/guix.git] / gnu / packages / gimp.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
3 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
4 ;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
5 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
6 ;;; Copyright © 2018, 2020 Leo Famulari <leo@famulari.name>
7 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
8 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
9 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
10 ;;;
11 ;;; This file is part of GNU Guix.
12 ;;;
13 ;;; GNU Guix is free software; you can redistribute it and/or modify it
14 ;;; under the terms of the GNU General Public License as published by
15 ;;; the Free Software Foundation; either version 3 of the License, or (at
16 ;;; your option) any later version.
17 ;;;
18 ;;; GNU Guix is distributed in the hope that it will be useful, but
19 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
20 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 ;;; GNU General Public License for more details.
22 ;;;
23 ;;; You should have received a copy of the GNU General Public License
24 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25
26 (define-module (gnu packages gimp)
27 #:use-module (guix packages)
28 #:use-module (guix download)
29 #:use-module (guix git-download)
30 #:use-module (guix utils)
31 #:use-module ((guix licenses) #:prefix license:)
32 #:use-module (guix build-system gnu)
33 #:use-module (guix build-system glib-or-gtk)
34 #:use-module (guix build-system meson)
35 #:use-module (gnu packages)
36 #:use-module (gnu packages algebra)
37 #:use-module (gnu packages autotools)
38 #:use-module (gnu packages base)
39 #:use-module (gnu packages build-tools)
40 #:use-module (gnu packages documentation)
41 #:use-module (gnu packages graphviz)
42 #:use-module (gnu packages pkg-config)
43 #:use-module (gnu packages glib)
44 #:use-module (gnu packages gtk)
45 #:use-module (gnu packages gnome)
46 #:use-module (gnu packages graphics)
47 #:use-module (gnu packages image)
48 #:use-module (gnu packages ghostscript)
49 #:use-module (gnu packages compression)
50 #:use-module (gnu packages xml)
51 #:use-module (gnu packages linux)
52 #:use-module (gnu packages ncurses)
53 #:use-module (gnu packages patchutils)
54 #:use-module (gnu packages pdf)
55 #:use-module (gnu packages photo)
56 #:use-module (gnu packages python)
57 #:use-module (gnu packages web)
58 #:use-module (gnu packages xorg))
59
60 (define-public poly2tri-c
61 (package
62 (name "poly2tri-c")
63 (version "0.1.0")
64 (source
65 (origin
66 (method url-fetch)
67 (uri
68 (string-append "https://storage.googleapis.com/"
69 "google-code-archive-source/v2/code.google.com/"
70 "poly2tri-c/source-archive.zip"))
71 (file-name
72 (string-append name "-" version ".zip"))
73 (sha256
74 (base32 "17cw0zhbnf2gb59jm26z0wcarqgdwir9jr1fpi3v9lcvyb2s3mqj"))))
75 (build-system glib-or-gtk-build-system)
76 (outputs '("out" "doc"))
77 (arguments
78 `(#:configure-flags
79 (list
80 "--disable-static")
81 #:phases
82 (modify-phases %standard-phases
83 (add-after 'unpack 'disable-strict-rules
84 (lambda _
85 (substitute* "configure.ac"
86 (("\\$CFLAGS -Wall -ansi -pedantic")
87 "$CFLAGS")
88 (("\\$CFLAGS -Werror")
89 "$CFLAGS"))
90 #t))
91 (add-after 'disable-strict-rules 'fix-build-errors
92 (lambda _
93 (substitute* "poly2tri-c/refine/Makefile.am"
94 (("cdt.c")
95 "rcdt.c")
96 (("cdt.h")
97 "rcdt.h")
98 (("utils.c")
99 "rutils.c")
100 (("utils.h")
101 "rutils.h"))
102 #t))
103 (add-before 'bootstrap 'configure-later
104 (lambda _
105 (setenv "NOCONFIGURE" "set")
106 #t))
107 (add-after 'build 'generate-doc
108 (lambda _
109 (invoke "doxygen")
110 #t))
111 (add-after 'install 'install-doc
112 (lambda* (#:key outputs #:allow-other-keys)
113 (let* ((out (assoc-ref outputs "out"))
114 (doc (assoc-ref outputs "doc")))
115 (copy-recursively
116 "doc"
117 (string-append doc "/share/doc/poly2tri-c"))
118 #t))))))
119 (native-inputs
120 `(("autoconf" ,autoconf)
121 ("automake" ,automake)
122 ("doxygen" ,doxygen)
123 ("libtool" ,libtool)
124 ("pkg-config" ,pkg-config)
125 ("unzip" ,unzip)
126 ("which" ,which)))
127 (propagated-inputs
128 `(("glib" ,glib)))
129 (synopsis "2D constrained Delaunay triangulation library")
130 (description "Poly2Tri-C is a library for generating, refining and rendering
131 2-Dimensional Constrained Delaunay Triangulations.")
132 (home-page "https://code.google.com/archive/p/poly2tri-c/")
133 (license license:bsd-3)))
134
135 (define-public mrg
136 (package
137 (name "mrg")
138 (version "0.1.4")
139 (source
140 (origin
141 (method git-fetch)
142 (uri
143 (git-reference
144 (url "https://github.com/hodefoting/mrg")
145 (commit version)))
146 (file-name
147 (git-file-name name version))
148 (sha256
149 (base32 "106qhh0c11576cc5kh90ds0ram72d3r6n9sadw0y4krnhap6dvwk"))))
150 (build-system meson-build-system)
151 (arguments
152 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
153 (native-inputs
154 `(("pkg-config" ,pkg-config)))
155 (propagated-inputs
156 `(("alsa" ,alsa-lib)
157 ("cairo" ,cairo)
158 ("gtk+" ,gtk+)
159 ("mmm" ,mmm)
160 ("x11" ,libx11)))
161 (synopsis "Microraptor GUI")
162 (description "MrG is is a C API for creating user interfaces. It can be
163 used as an application writing environment or as an interactive canvas for part
164 of a larger interface.")
165 (home-page "https://github.com/hodefoting/mrg")
166 (license license:lgpl2.0+)))
167
168 (define-public babl
169 (package
170 (name "babl")
171 (version "0.1.86")
172 (source (origin
173 (method url-fetch)
174 (uri (list (string-append "https://download.gimp.org/pub/babl/"
175 (version-major+minor version)
176 "/babl-" version ".tar.xz")
177 (string-append "https://ftp.gtk.org/pub/babl/"
178 (version-major+minor version)
179 "/babl-" version ".tar.xz")
180 (string-append "ftp://ftp.gtk.org/pub/babl/"
181 (version-major+minor version)
182 "/babl-" version ".tar.xz")))
183 (sha256
184 (base32
185 "1w68h81kqkqnziixrx21qs0gfv2z79651h19sxn226xdb58mjgqb"))))
186 (build-system meson-build-system)
187 (arguments
188 `(#:meson ,meson-0.55
189 #:configure-flags
190 (list "-Denable-gir=false")))
191 (native-inputs
192 `(("pkg-config" ,pkg-config)))
193 (propagated-inputs
194 ;; Propagated to satisfy ‘babl.pc’.
195 `(("lcms" ,lcms)))
196 (home-page "https://gegl.org/babl/")
197 (synopsis "Image pixel format conversion library")
198 (description
199 "Babl is a dynamic, any-to-any pixel format translation library.
200 It allows converting between different methods of storing pixels, known as
201 @dfn{pixel formats}, that have different bit depths and other data
202 representations, color models, and component permutations.
203
204 A vocabulary to formulate new pixel formats from existing primitives is
205 provided, as well as a framework to add new color models and data types.")
206 (license license:lgpl3+)))
207
208 (define-public gegl
209 (package
210 (name "gegl")
211 (version "0.4.28")
212 (source (origin
213 (method url-fetch)
214 (uri (list (string-append "https://download.gimp.org/pub/gegl/"
215 (string-take version 3)
216 "/gegl-" version ".tar.xz")
217 (string-append "https://ftp.gtk.org/pub/gegl/"
218 (version-major+minor version)
219 "/gegl-" version ".tar.xz")
220 (string-append "ftp://ftp.gtk.org/pub/gegl/"
221 (version-major+minor version)
222 "/gegl-" version ".tar.xz")))
223 (sha256
224 (base32
225 "003ri7yv7lm2fi86ama3vlkwnz656yyib4r36hxwlk6mfy2hs48x"))))
226 (build-system meson-build-system)
227 (arguments
228 `(#:meson ,meson-0.55
229 #:configure-flags
230 (list "-Dintrospection=false")
231 #:phases
232 (modify-phases %standard-phases
233 (add-after 'unpack 'extend-test-time-outs
234 (lambda _
235 ;; Multiply some poorly-chosen time-outs for busy build machines.
236 (substitute* "tests/simple/test-node-exponential.c"
237 (("G_TIME_SPAN_SECOND" match)
238 (string-append "10 * " match)))
239 (substitute* "tests/simple/test-buffer-sharing.c"
240 (("g_timeout_add_seconds\\([0-9]+" match)
241 (string-append match "0")))
242 (substitute* (find-files "tests" "^meson\\.build$")
243 (("timeout ?: [0-9]+" match)
244 (string-append match "0")))
245 #t)))))
246 ;; These are propagated to satisfy 'gegl-0.4.pc'.
247 (propagated-inputs
248 `(("babl" ,babl)
249 ("glib" ,glib)
250 ("json-glib" ,json-glib)))
251 (inputs
252 `(("cairo" ,cairo)
253 ("pango" ,pango)
254 ("libpng" ,libpng)
255 ("libjpeg" ,libjpeg-turbo)))
256 (native-inputs
257 `(("pkg-config" ,pkg-config)
258 ("glib" ,glib "bin") ; for gtester
259 ("intltool" ,intltool)))
260 (home-page "https://gegl.org")
261 (synopsis "Graph based image processing framework")
262 (description "GEGL (Generic Graphics Library) provides infrastructure to
263 do demand based cached non destructive image editing on larger than RAM
264 buffers.")
265 ;; The library itself is licensed under LGPL while the sample commandline
266 ;; application and GUI binary gegl is licensed under GPL.
267 (license (list license:lgpl3+ license:gpl3+))))
268
269 (define-public gimp
270 (package
271 (name "gimp")
272 (version "2.10.22")
273 (source
274 (origin
275 (method url-fetch)
276 (uri (string-append "https://download.gimp.org/pub/gimp/v"
277 (version-major+minor version)
278 "/gimp-" version ".tar.bz2"))
279 (sha256
280 (base32 "1fqqyshakvdarf1jipk2n33ibqr23ni22z3d8srq13bpydblpf1d"))
281 (patches (search-patches "gimp-make-gegl-introspect-optional.patch"))))
282 (build-system gnu-build-system)
283 (outputs '("out"
284 "doc")) ; 9 MiB of gtk-doc HTML
285 (arguments
286 '(#:configure-flags
287 (list (string-append "--with-html-dir="
288 (assoc-ref %outputs "doc")
289 "/share/gtk-doc/html")
290
291 ;; Prevent the build system from running 'gtk-update-icon-cache'
292 ;; which is not needed during the build because Guix runs it at
293 ;; profile creation time.
294 "ac_cv_path_GTK_UPDATE_ICON_CACHE=true"
295
296 ;; Disable automatic network request on startup to check for
297 ;; version updates.
298 "--disable-check-update"
299
300 ;; ./configure requests not to annoy upstream with packaging bugs.
301 "--with-bug-report-url=https://bugs.gnu.org/guix")
302 #:phases
303 (modify-phases %standard-phases
304 (add-after 'install 'install-sitecustomize.py
305 ;; Install 'sitecustomize.py' into gimp's python directory to
306 ;; add pygobject and pygtk to pygimp's search path.
307 (lambda* (#:key outputs #:allow-other-keys)
308 (let* ((pythonpath (getenv "PYTHONPATH"))
309 (out (assoc-ref outputs "out"))
310 (sitecustomize.py
311 (string-append
312 out "/lib/gimp/2.0/python/sitecustomize.py")))
313 (call-with-output-file sitecustomize.py
314 (lambda (port)
315 (format port "import site~%")
316 (format port "for dir in '~a'.split(':'):~%" pythonpath)
317 (format port " site.addsitedir(dir)~%")))))))))
318 (inputs
319 `(("babl" ,babl)
320 ("glib" ,glib)
321 ("glib-networking" ,glib-networking)
322 ("libtiff" ,libtiff)
323 ("libwebp" ,libwebp)
324 ("libjpeg" ,libjpeg-turbo)
325 ("atk" ,atk)
326 ("gexiv2" ,gexiv2)
327 ("gtk+" ,gtk+-2)
328 ("libmypaint" ,libmypaint)
329 ("mypaint-brushes" ,mypaint-brushes-1.3)
330 ("exif" ,libexif) ; optional, EXIF + XMP support
331 ("lcms" ,lcms) ; optional, color management
332 ("librsvg" ,librsvg) ; optional, SVG support
333 ("libxcursor" ,libxcursor) ; optional, Mouse Cursor support
334 ("poppler" ,poppler) ; optional, PDF support
335 ("poppler-data" ,poppler-data)
336 ("python" ,python-2) ; optional, Python support
337 ("python2-pygtk" ,python2-pygtk) ; optional, Python support
338 ("gegl" ,gegl)))
339 (native-inputs
340 `(("glib:bin" ,glib "bin") ; for glib-compile-resources and gdbus-codegen
341 ("pkg-config" ,pkg-config)
342 ("intltool" ,intltool)))
343 (home-page "https://www.gimp.org")
344 (synopsis "GNU Image Manipulation Program")
345 (description
346 "GIMP is an application for image manipulation tasks such as photo
347 retouching, composition and authoring. It supports all common image formats
348 as well as specialized ones. It features a highly customizable interface
349 that is extensible via a plugin system.")
350 (license license:gpl3+))) ; some files are lgplv3
351
352 (define-public gimp-fourier
353 (package
354 (name "gimp-fourier")
355 (version "0.4.3-2")
356 (source (origin
357 (method url-fetch)
358 (uri (string-append "http://registry.gimp.org/files/fourier-"
359 version ".tar.gz"))
360 (sha256
361 (base32
362 "1rpacyad678lqgxa3hh2n0zpg4azs8dpa8q079bqsl12812k9184"))))
363 (build-system gnu-build-system)
364 (arguments
365 `(#:tests? #f ;no tests
366 #:phases
367 (modify-phases %standard-phases
368 ;; FIXME: The gegl package only installs "gegl-0.4.pc", but
369 ;; "gimp-2.0.pc" requires "gegl-0.3.pc", so we just copy it.
370 (replace 'configure
371 (lambda* (#:key inputs #:allow-other-keys)
372 (mkdir-p "tmppkgconfig")
373 (copy-file (string-append (assoc-ref inputs "gegl")
374 "/lib/pkgconfig/gegl-0.4.pc")
375 "tmppkgconfig/gegl-0.3.pc")
376 (setenv "PKG_CONFIG_PATH"
377 (string-append "tmppkgconfig:"
378 (or (getenv "PKG_CONFIG_PATH") "")))
379 #t))
380 (add-after 'unpack 'set-prefix
381 (lambda* (#:key outputs #:allow-other-keys)
382 ;; gimptool-2.0 does not allow us to install to any target
383 ;; directory.
384 (let ((target (string-append (assoc-ref outputs "out")
385 "/lib/gimp/"
386 (car (string-split ,(package-version gimp) #\.))
387 ".0/plug-ins")))
388 (substitute* "Makefile"
389 (("\\$\\(PLUGIN_INSTALL\\) fourier")
390 (string-append "cp fourier " target)))
391 (mkdir-p target))
392 #t)))))
393 (inputs
394 `(("fftw" ,fftw)
395 ("gimp" ,gimp)
396 ;; needed by gimp-2.0.pc
397 ("gdk-pixbuf" ,gdk-pixbuf)
398 ("gegl" ,gegl)
399 ("cairo" ,cairo)
400 ("glib" ,glib)
401 ;; needed by gimpui-2.0.pc
402 ("gtk+" ,gtk+-2)))
403 (native-inputs
404 `(("pkg-config" ,pkg-config)))
405 (home-page "https://www.lprp.fr/gimp_plugin_en/#fourier")
406 (synopsis "GIMP plug-in to edit image in fourier space")
407 (description
408 "This package provides a simple plug-in to apply the fourier transform on
409 an image, allowing you to work with the transformed image inside GIMP. You
410 can draw or apply filters in fourier space and get the modified image with an
411 inverse fourier transform.")
412 (license license:gpl3+)))
413
414 (define-public libmypaint
415 (package
416 (name "libmypaint")
417 (version "1.6.1")
418 (source (origin
419 (method url-fetch)
420 (uri (string-append "https://github.com/mypaint/libmypaint/"
421 "releases/download/v" version "/libmypaint-"
422 version ".tar.xz"))
423 (sha256
424 (base32
425 "0priwpmc7dizccqvn21ig6d649bprl3xl1hmjj7nddznjgr585vl"))))
426 (build-system gnu-build-system)
427 (native-inputs
428 `(("intltool" ,intltool)
429 ("pkg-config" ,pkg-config)))
430 ;; As needed by 'libmypaint.pc'.
431 (propagated-inputs
432 `(("json-c" ,json-c)
433 ("gobject-introspection" ,gobject-introspection)))
434 (inputs
435 `(("glib" ,glib)))
436 (synopsis "Artistic brushes library")
437 (description "Libmypaint, also called \"brushlib\", is a library for making
438 brushstrokes which is used by MyPaint and GIMP.")
439 (home-page "http://mypaint.org")
440 (license license:isc)))
441
442 (define-public mypaint-brushes
443 (package
444 (name "mypaint-brushes")
445 (version "2.0.2")
446 (source
447 (origin
448 (method git-fetch)
449 (uri (git-reference
450 (url "https://github.com/mypaint/mypaint-brushes")
451 (commit (string-append "v" version))))
452 (file-name (git-file-name name version))
453 (sha256
454 (base32 "0kcqz13vzpy24dhmrx9hbs6s7hqb8y305vciznm15h277sabpmw9"))))
455 (build-system gnu-build-system)
456 (native-inputs
457 `(("autoconf" ,autoconf)
458 ("automake" ,automake)))
459 (synopsis "Default brushes for MyPaint")
460 (description "This package provides the default set of brushes for
461 MyPaint.")
462 (home-page "https://github.com/mypaint/mypaint-brushes/")
463 ;; Scripts are distributed under GPL2+ terms, brushes are provided as
464 ;; public domain or under CC0 terms.
465 (license (list license:gpl2+ license:cc0 license:public-domain))))
466
467 (define-public mypaint-brushes-1.3
468 (package
469 (inherit mypaint-brushes)
470 (name "mypaint-brushes")
471 (version "1.3.1")
472 (source
473 (origin
474 (method git-fetch)
475 (uri (git-reference
476 (url "https://github.com/mypaint/mypaint-brushes")
477 (commit (string-append "v" version))))
478 (file-name (git-file-name name version))
479 (sha256
480 (base32 "1c95l1vfz7sbrdlzrbz7h1p6s1k113kyjfd9wfnxlm0p6562cz3j"))))))
481
482 (define-public gimp-resynthesizer
483 ;; GIMP does not respect any plugin search path environment variable, so after
484 ;; installation users have to edit their GIMP settings to include
485 ;; "$HOME/.guix-profile/lib/gimp/2.0/plug-ins/" in
486 ;; “Edit->Preferences->Folders->Plug Ins”.
487 (package
488 (name "gimp-resynthesizer")
489 (version "2.0.3")
490 (source
491 (origin
492 (method git-fetch)
493 (uri (git-reference
494 (url "https://github.com/bootchk/resynthesizer")
495 (commit (string-append "v" version))))
496 (sha256
497 (base32
498 "1jwc8bhhm21xhrgw56nzbma6fwg59gc8anlmyns7jdiw83y0zx3j"))
499 (file-name (git-file-name name version))))
500 (build-system gnu-build-system)
501 (arguments
502 `( ;; Turn off tests to avoid:
503 ;; make[1]: *** No rule to make target '../src/resynth-gui.c', needed by 'resynthesizer.pot'. Stop.
504 #:tests? #f
505 #:phases
506 (modify-phases %standard-phases
507 (add-after 'unpack 'set-env
508 (lambda _
509 (setenv "CONFIG_SHELL" (which "sh"))
510 #t))
511 (add-after 'configure 'set-prefix
512 ;; Install plugin under $prefix, not under GIMP's libdir.
513 (lambda* (#:key outputs #:allow-other-keys)
514 (let ((target (string-append (assoc-ref outputs "out")
515 "/lib/gimp/"
516 ,(version-major
517 (package-version gimp))
518 ".0")))
519 (substitute* (list "src/resynthesizer/Makefile"
520 "src/resynthesizer-gui/Makefile")
521 (("GIMP_LIBDIR = .*")
522 (string-append "GIMP_LIBDIR = " target "\n")))
523 (mkdir-p target)
524 #t))))))
525 (native-inputs
526 ;; avoid ./autogen.sh: ./configure: /bin/sh: bad interpreter:
527 ;; No such file or directory
528 `(("autoconf" ,autoconf-wrapper)
529 ("automake" ,automake)
530 ("glib" ,glib "bin") ; glib-gettextize
531 ("intltool" ,intltool)
532 ("pkg-config" ,pkg-config)))
533 (inputs
534 `(("gimp" ,gimp)
535 ("gdk-pixbuf" ,gdk-pixbuf) ; needed by gimp-2.0.pc
536 ("cairo" ,cairo)
537 ("gegl" ,gegl)
538 ("gtk+" ,gtk+-2) ; needed by gimpui-2.0.pc
539 ("glib" ,glib)))
540 (home-page "https://github.com/bootchk/resynthesizer")
541 (synopsis "GIMP plugins for texture synthesis")
542 (description
543 "This package provides resynthesizer plugins for GIMP, which encompasses
544 tools for healing selections (content-aware fill), enlarging the canvas and
545 healing the border, increasing the resolution while adding detail, and
546 transferring the style of an image.")
547 (license license:gpl3+)))
548
549 (define gegl-for-glimpse
550 ;; Remove this when GIMP commit 2cae9b9acf9da98c4c9990819ffbd5aabe23017e
551 ;; makes it into Glimpse.
552 (package
553 (inherit gegl)
554 (arguments
555 (substitute-keyword-arguments (package-arguments gegl)
556 ((#:phases phases)
557 `(modify-phases ,phases
558 (add-after 'unpack 'refer-to-dot
559 ;; XXX Without ‘dot’ in $PATH, Glimpse would fail to start with an
560 ;; extremely obtuse ‘GEGL operation missing!’ error.
561 (lambda _
562 (substitute* "gegl/gegl-dot.c"
563 (("\"dot ")
564 (format #f "\"~a " (which "dot"))))
565 (substitute* "operations/common/introspect.c"
566 (("g_find_program_in_path \\(\"dot\"\\)")
567 (format #f "g_strdup (\"~a\")" (which "dot"))))))))))
568 (inputs
569 `(,@(package-inputs gegl)
570 ("graphviz" ,graphviz)))))
571
572 (define-public glimpse
573 (package
574 (name "glimpse")
575 (version "0.2.0")
576 (source (origin
577 (method git-fetch)
578 (uri (git-reference
579 (url "https://github.com/glimpse-editor/Glimpse")
580 (commit (string-append "v" version))))
581 (file-name (git-file-name name version))
582 (sha256
583 (base32
584 "0drngj2xqzxfaag6pc4xjffiw003n4y43x5rb5bf4ziv1ac51dm9"))))
585 (build-system gnu-build-system)
586 (outputs '("out"
587 "doc")) ; 9 MiB of gtk-doc HTML
588 (arguments
589 '(#:configure-flags
590 (list (string-append "--with-html-dir="
591 (assoc-ref %outputs "doc")
592 "/share/gtk-doc/html")
593 "--enable-gtk-doc"
594
595 ;; Prevent the build system from running 'gtk-update-icon-cache'
596 ;; which is not needed during the build because Guix runs it at
597 ;; profile creation time.
598 "ac_cv_path_GTK_UPDATE_ICON_CACHE=true"
599
600 ;; Disable automatic network request on startup to check for
601 ;; version updates.
602 "--disable-check-update"
603
604 ;; ./configure requests not to annoy upstream with packaging bugs.
605 "--with-bug-report-url=https://bugs.gnu.org/guix")
606 #:phases
607 (modify-phases %standard-phases
608 (add-after 'install 'install-sitecustomize.py
609 ;; Install 'sitecustomize.py' into glimpse's python directory to
610 ;; add pygobject and pygtk to pygimp's search path.
611 (lambda* (#:key outputs #:allow-other-keys)
612 (let* ((pythonpath (getenv "PYTHONPATH"))
613 (out (assoc-ref outputs "out"))
614 (sitecustomize.py
615 (string-append
616 out "/lib/glimpse/2.0/python/sitecustomize.py")))
617 (call-with-output-file sitecustomize.py
618 (lambda (port)
619 (format port "import site~%")
620 (format port "for dir in '~a'.split(':'):~%" pythonpath)
621 (format port " site.addsitedir(dir)~%")))))))))
622 (native-inputs
623 `(("autoconf" ,autoconf)
624 ("automake" ,automake)
625 ("gtk-doc" ,gtk-doc)
626 ("intltool" ,intltool)
627 ("libtool" ,libtool)
628 ("libxslt" ,libxslt) ; for xsltproc
629 ("pkg-config" ,pkg-config)
630 ("glib:bin" ,glib "bin"))) ; for gdbus-codegen
631 (inputs
632 `(("babl" ,babl)
633 ("glib" ,glib)
634 ("glib-networking" ,glib-networking)
635 ("libtiff" ,libtiff)
636 ("libwebp" ,libwebp)
637 ("libjpeg" ,libjpeg-turbo)
638 ("atk" ,atk)
639 ("gexiv2" ,gexiv2)
640 ("gtk+" ,gtk+-2)
641 ("libmypaint" ,libmypaint)
642 ("mypaint-brushes" ,mypaint-brushes-1.3)
643 ("exif" ,libexif) ; optional, EXIF + XMP support
644 ("lcms" ,lcms) ; optional, color management
645 ("librsvg" ,librsvg) ; optional, SVG support
646 ("libxcursor" ,libxcursor) ; optional, Mouse Cursor support
647 ("poppler" ,poppler) ; optional, PDF support
648 ("poppler-data" ,poppler-data)
649 ("python" ,python-2) ; optional, Python support
650 ("python2-pygtk" ,python2-pygtk) ; optional, Python support
651 ("gegl" ,gegl-for-glimpse))) ; XXX see comment in gegl-for-glimpse
652 (home-page "https://glimpse-editor.github.io/")
653 (synopsis "Glimpse Image Editor")
654 (description "The Glimpse Image Editor is an application for image
655 manipulation tasks such as photo retouching, composition and authoring.
656 It supports all common image formats as well as specialized ones. It
657 features a highly customizable interface that is extensible via a plugin
658 system. It was forked from the GNU Image Manipulation Program.")
659 (license license:gpl3+)))