Subject: [bug#46201] [PATCH] Add new indi

From: Sharlatan Hellseher <[email-masked]>
Date: Sun, 31 Jan 2021 02:52:21 +0000

-- 
… наш разум - превосходная объяснительная машина которая способна
найти смысл почти в чем угодно, истолковать любой феномен, но
совершенно не в состоянии принять мысль о непредсказуемости.
From 1890a3eb5b6bff7bbaaec1b5fd029c43fff68452 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Sun, 31 Jan 2021 02:49:34 +0000
Subject: [PATCH] gnu: Add indi

* gnu/packages/astronomy.scm (indo): New variable
---
 gnu/packages/astronomy.scm | 56 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 9b25e03446..1ff84b6258 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -40,6 +40,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages netpbm)
@@ -630,3 +631,58 @@ Gpredict can also predict the time of future passes for a satellite, and
 provide you with detailed information about each pass.")
     (home-page "http://gpredict.oz9aec.net/index.php")
     (license license:gpl2+)))
+
+(define-public indi
+  (package
+    (name "indi")
+    (version "1.8.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/indilib/indi")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "19gm7rbnm3295g2i8mdzfslpz0vrcgfmbl59311qpszvlxbmyd2r"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f
+       #:configure-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list
+          "-DCMAKE_BUILD_TYPE=Release"
+          (string-append "-DCMAKE_INSTALL_PREFIX=" out)
+          (string-append "-DUDEVRULES_INSTALL_DIR=" out "/lib/udev/rules.d")))
+       #:phases
+       (modify-phases %standard-phases
+         (replace  'check
+           (lambda _
+             (invoke "ctest")))
+         (add-before 'install 'set-install-directories
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (mkdir-p (string-append out "/lib/udev/rules.d")))
+             #t)))))
+    ;; Required for unit tests
+    ;; (native-inputs
+    ;;  `(("googletest" ,googletest)))
+    (inputs
+     `(("cfitsio" ,cfitsio)
+       ("curl" ,curl)
+       ("fftw" ,fftw)
+       ("gsl" ,gsl)
+       ("libjpeg-turbo" ,libjpeg-turbo)
+       ("libnova" ,libnova)
+       ("libtiff" ,libtiff)
+       ("libusb" ,libusb)
+       ("zlib" ,zlib)))
+    (home-page "https://www.indilib.org")
+    (synopsis "Privides library for astonimical intrumentation control")
+    (description
+     "Instrument-Neutral Device Interface library -- shared library
+INDI (Instrument-Neutral Device Interface) is a distributed XML-based control
+protocol designed to operate astronomical instrumentation.  INDI is small,
+flexible, easy to parse, scalable, and stateless.  It supports common DCS
+functions such as remote control, data acquisition, monitoring, and a lot more.")
+    (license license:lgpl2.1)))
-- 
2.30.0