summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2021-02-16 22:51:19 +0000
committerGuillaume Le Vaillant <glv@posteo.net>2021-02-19 11:05:34 +0100
commit19e081138b43b50e505f86c7e1321d8fa064980d (patch)
treecd327c375da361df45978edab2015e1de60449be /gnu/packages
parent87530f7b4d4ec26a648e71df0592dbf9987417e3 (diff)
downloadguix-19e081138b43b50e505f86c7e1321d8fa064980d.tar.gz
gnu: Add stackistry.
* gnu/packages/astronomy.scm (stackistry): New variable.

Co-authored-by: Guillaume Le Vaillant <glv@posteo.net>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/astronomy.scm64
1 files changed, 64 insertions, 0 deletions
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 5e5a9a2634..f617d7b361 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -332,6 +332,70 @@ astronomical fields.  SkyMaker is part of the EFIGI
 (@url{https://www.astromatic.net/projects/efigi}) development project.")
     (license license:gpl3+)))
 
+(define-public stackistry
+  (package
+    (name "stackistry")
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/GreatAttractor/stackistry")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0rz29v33n0x0k40hv3v79ym5ylch1v0pbph4i21809gz2al5p7dq"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list
+        (string-append
+         "SKRY_INCLUDE_PATH=" (assoc-ref %build-inputs "libskry") "/include")
+        (string-append
+         "SKRY_LIB_PATH=-L" (assoc-ref %build-inputs "libskry") "/lib")
+        (string-append
+         "LIBAV_INCLUDE_PATH=" (assoc-ref %build-inputs "ffmpeg") "/include"))
+       #:phases
+       (modify-phases %standard-phases
+         ;; no configure and tests are provided
+         (delete 'configure)
+         (delete 'check)
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "src/main.cpp"
+               (("\"\\.\\.\", \"lang\"")
+                "\"../share/stackistry\", \"lang\""))
+             (substitute* "src/utils.cpp"
+               (("\"\\.\\.\", \"icons\"")
+                "\"../share/stackistry\", \"icons\""))
+             #t))
+         (replace 'install
+           ;; The Makefile lacks an ‘install’ target.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (icons (string-append out "/share/stackistry/icons"))
+                    (lang (string-append out "/share/stackistry/lang")))
+               (copy-recursively "bin" bin)
+               (copy-recursively "icons" icons)
+               (copy-recursively "lang" lang))
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+     (inputs
+      `(("gtkmm" ,gtkmm)
+        ("libskry" ,libskry)
+        ("ffmpeg" ,ffmpeg)))
+     (home-page "https://github.com/GreatAttractor/stackistry")
+     (synopsis "Astronomical lucky imaging/image stacking tool")
+     (description
+      "Stackistry implements the lucky imaging principle of astronomical
+imaging: creating a high-quality still image out of a series of many (possibly
+thousands) low quality ones (blurred, deformed, noisy).  The resulting image
+stack typically requires post-processing, including sharpening (e.g. via
+deconvolution).  Such post-processing is not performed by Stackistry.")
+     (license license:gpl3+)))
+
 (define-public stellarium
   (package
     (name "stellarium")