gnu: Add cl-ana.statistical-learning.
[jackhill/guix/guix.git] / gnu / packages / gimp.scm
index 07f6444..42a55cf 100644 (file)
@@ -1,9 +1,10 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system meson)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
 (define-public babl
   (package
     (name "babl")
-    (version "0.1.50")
+    (version "0.1.72")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://download.gimp.org/pub/babl/"
                                         (version-major+minor version)
-                                        "/babl-" version ".tar.bz2")
-                         (string-append "http://ftp.gtk.org/pub/babl/"
+                                        "/babl-" version ".tar.xz")
+                         (string-append "https://ftp.gtk.org/pub/babl/"
                                         (version-major+minor version)
-                                        "/babl-" version ".tar.bz2")
+                                        "/babl-" version ".tar.xz")
                          (string-append "ftp://ftp.gtk.org/pub/babl/"
                                         (version-major+minor version)
-                                        "/babl-" version ".tar.bz2")))
+                                        "/babl-" version ".tar.xz")))
               (sha256
                (base32
-                "0bavr2y4v88pip7vlca4kwmnksk2qxcvkkdp9jyfi6pzh701sb5m"))))
-    (build-system gnu-build-system)
+                "0hkagjrnza77aasa1kss5hvy37ndm50y6i7hkdn2z8hzgc4i3qb4"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "-Denable-gir=false")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     ;; Propagated to satisfy ‘babl.pc’.
+     `(("lcms" ,lcms)))
     (home-page "http://gegl.org/babl/")
     (synopsis "Image pixel format conversion library")
     (description
@@ -79,18 +89,25 @@ provided, as well as a framework to add new color models and data types.")
 (define-public gegl
   (package
     (name "gegl")
-    (version "0.4.0")
+    (version "0.4.18")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://download.gimp.org/pub/gegl/"
                                         (string-take version 3)
-                                        "/" name "-" version ".tar.bz2")))
+                                        "/gegl-" version ".tar.xz")
+                         (string-append "https://ftp.gtk.org/pub/gegl/"
+                                        (version-major+minor version)
+                                        "/gegl-" version ".tar.xz")
+                         (string-append "ftp://ftp.gtk.org/pub/gegl/"
+                                        (version-major+minor version)
+                                        "/gegl-" version ".tar.xz")))
               (sha256
                (base32
-                "1ighk4z8nlqrzyj8w97s140hzj59564l3xv6fpzbr97m1zx2nkfh"))))
-    (build-system gnu-build-system)
+                "0r6akqnrkvxizyhyi8sv40mxm7j4bcwjb6mqjpxy0zzbbfsdyin9"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:configure-flags '("LDFLAGS=-lm")))
+     `(#:configure-flags
+       (list "-Dintrospection=false")))
     ;; These are propagated to satisfy 'gegl-0.4.pc'.
     (propagated-inputs
      `(("babl" ,babl)
@@ -100,7 +117,7 @@ provided, as well as a framework to add new color models and data types.")
      `(("cairo" ,cairo)
        ("pango" ,pango)
        ("libpng" ,libpng)
-       ("libjpeg" ,libjpeg-8)))
+       ("libjpeg" ,libjpeg)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("glib" ,glib "bin")             ; for gtester
@@ -117,7 +134,7 @@ buffers.")
 (define-public gimp
   (package
     (name "gimp")
-    (version "2.10.0")
+    (version "2.10.14")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.gimp.org/pub/gimp/v"
@@ -125,14 +142,17 @@ buffers.")
                                   "/gimp-" version ".tar.bz2"))
               (sha256
                (base32
-                "1qkxaigbfkx26xym5nzrgfrmn97cbnhn63v1saaha2nbi3xrdk3z"))))
+                "0m6wdnfvsxyhimdd4v3351g4r1fklllnbipbwcfym3h7q88hz6yz"))))
     (build-system gnu-build-system)
     (outputs '("out"
-               "doc"))                            ;9 MiB of gtk-doc HTML
+               "doc"))                            ; 9 MiB of gtk-doc HTML
     (arguments
-     '(#:configure-flags (list (string-append "--with-html-dir="
-                                              (assoc-ref %outputs "doc")
-                                              "/share/gtk-doc/html"))
+     '(#:configure-flags
+       (list (string-append "--with-html-dir="
+                            (assoc-ref %outputs "doc")
+                            "/share/gtk-doc/html")
+             ;; ./configure requests not to annoy upstream with packaging bugs.
+             "--with-bug-report-url=https://bugs.gnu.org/guix")
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'install-sitecustomize.py
@@ -154,7 +174,7 @@ buffers.")
        ("glib" ,glib)
        ("glib-networking" ,glib-networking)
        ("libtiff" ,libtiff)
-       ("libjpeg" ,libjpeg-8)
+       ("libjpeg" ,libjpeg)
        ("atk" ,atk)
        ("gexiv2" ,gexiv2)
        ("gtk+" ,gtk+-2)
@@ -302,3 +322,67 @@ brushstrokes which is used by MyPaint and GIMP.")
 MyPaint.")
     (home-page "https://github.com/Jehan/mypaint-brushes")
     (license license:cc0)))
+
+(define-public gimp-resynthesizer
+  ;; GIMP does not respect any plugin search path environment variable, so after
+  ;; installation users have to edit their GIMP settings to include
+  ;; "$HOME/.guix-profile/lib/gimp/2.0/plug-ins/" in
+  ;; “Edit->Preferences->Folders->Plug Ins”.
+  (package
+    (name "gimp-resynthesizer")
+    (version "2.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/bootchk/resynthesizer/archive/v"
+                          version ".tar.gz"))
+       (sha256
+        (base32
+         "0l3404w6rqny7h3djskxf149gzx6x4qhndgbh3403c9lbh4pi1kr"))
+       (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system gnu-build-system)
+    (arguments
+     `( ;; Turn off tests to avoid:
+       ;; make[1]: *** No rule to make target '../src/resynth-gui.c', needed by 'resynthesizer.pot'.  Stop.
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+        (add-after 'unpack 'set-env
+          (lambda _
+            (setenv "CONFIG_SHELL" (which "sh"))
+            #t))
+        (add-after 'configure 'set-prefix
+           ;; Install plugin under $prefix, not under GIMP's libdir.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((target (string-append (assoc-ref outputs "out")
+                                          "/lib/gimp/"
+                                          ,(version-major
+                                            (package-version gimp))
+                                          ".0")))
+               (substitute* (list "src/resynthesizer/Makefile"
+                                 "src/resynthesizer-gui/Makefile")
+                (("GIMP_LIBDIR = .*")
+                  (string-append "GIMP_LIBDIR = " target "\n")))
+               (mkdir-p target)
+               #t))))))
+    (native-inputs
+     `(("autoconf" ,autoconf-wrapper)
+       ("automake" ,automake)
+       ("glib" ,glib "bin")                       ; glib-gettextize
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gimp" ,gimp)
+       ("gdk-pixbuf" ,gdk-pixbuf)                 ; needed by gimp-2.0.pc
+       ("cairo" ,cairo)
+       ("gegl" ,gegl)
+       ("gtk+" ,gtk+-2)                           ; needed by gimpui-2.0.pc
+       ("glib" ,glib)))
+    (home-page "https://github.com/bootchk/resynthesizer")
+    (synopsis "GIMP plugins for texture synthesis")
+    (description
+     "This package provides resynthesizer plugins for GIMP, which encompasses
+tools for healing selections (content-aware fill), enlarging the canvas and
+healing the border, increasing the resolution while adding detail, and
+transferring the style of an image.")
+    (license license:gpl3+)))