Subject: [PATCH] gnu: Add entangle.
From: Vinicius Monego <[email-masked]>
To: [email-masked]
Cc: Vinicius Monego <[email-masked]>
Date: Fri, 14 Aug 2020 18:58:15 -0300
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/photo.scm (entangle): New variable.
---
 gnu/packages/photo.scm | 67 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 67 insertions(+)

diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index abdb751a5a..5fcbb9205b 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -28,6 +28,7 @@
 (define-module (gnu packages photo)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix download)
@@ -40,6 +41,7 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
@@ -611,6 +613,71 @@ paint brushes, image filters, colour adjustments and more advanced features
 such as Batch image processing.")
     (license license:gpl3+)))
 
+(define-public entangle
+  (package
+    (name "entangle")
+    (version "3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/entangle/entangle")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1pdmgxjdb3xlcqsaz7l8qzj5f7g7nwzhsrgid8929bm36d49cgc7"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache") "true"))
+             #t))
+         (add-after 'install 'wrap-gi-python
+           ;; Make GTK find files needed by plugins.
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out               (assoc-ref outputs "out"))
+                   (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
+                   (python-path       (getenv "PYTHONPATH")))
+               (wrap-program (string-append out "/bin/entangle")
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                 `("PYTHONPATH" ":" prefix (,python-path))))
+             #t)))))
+    (native-inputs
+     `(("cmake" ,cmake)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
+    (inputs
+     `(("gdk-pixbuf" ,gdk-pixbuf)
+       ("gexiv2" ,gexiv2)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gstreamer" ,gstreamer)
+       ("gtk+" ,gtk+)
+       ("lcms" ,lcms)
+       ("libgphoto2" ,libgphoto2)
+       ("libgudev" ,libgudev)
+       ("libpeas" ,libpeas)
+       ("libraw" ,libraw)
+       ("python" ,python)
+       ("python-pygobject" ,python-pygobject)))
+    (home-page "https://entangle-photo.org/")
+    (synopsis "Camera control and capture")
+    (description
+     "Entangle is an application which uses GTK and libgphoto2 to provide a
+graphical interface for tethered photography with digital cameras.  It includes
+control over camera shooting and configuration settings and 'hands off' shooting
+directly from the controlling computer.")
+    (license license:gpl3+)))
+
 (define-public hugin
   (package
     (name "hugin")
-- 
2.20.1