Subject: [PATCH 2/2] Astronomy - 2 more patches
From: Sharlatan Hellseher <[email-masked]>
To: [email-masked]
Date: Tue, 16 Feb 2021 23:02:38 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Guix team!

Here is a small application common for astronomy for image processing.
- stackistry
- libskry

Related issues:
- https://issues.guix.gnu.org/46492
- https://issues.guix.gnu.org/46375

Workflow:
- https://github.com/Hellseher/guix-patches/blob/main/astronomy.org

-- 
… наш разум - превосходная объяснительная машина которая способна
найти смысл почти в чем угодно, истолковать любой феномен, но
совершенно не в состоянии принять мысль о непредсказуемости.
From 2a01e69e9bccbf5b5cb1a6875a8de4262df1755e Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Tue, 16 Feb 2021 22:51:19 +0000
Subject: [PATCH 2/2] gnu: Add stackistry

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

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 2e7f4dee4a..d6ea036b93 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -284,6 +284,65 @@ 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)
+         (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 "/icons"))
+                    (lang (string-append out "/lang")))
+               (copy-recursively "bin" bin)
+               ;; FIXME: (Sharlatan-20210216T223419+0000): This part needs to be
+               ;; checked and probably patched in source code to set search path
+               ;; for static files, other way it tries to look at `../'
+               ;; directory which fails after install.
+               (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")
-- 
2.30.0

From 30b7c4386465331e6917c3836133effe424bdd20 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Tue, 16 Feb 2021 22:44:03 +0000
Subject: [PATCH 1/2] gnu: Add libskry

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

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 07dee4b462..2e7f4dee4a 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -51,6 +51,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
@@ -466,6 +467,48 @@ Mechanics, Astrometry and Astrodynamics library.")
     (license (list license:lgpl2.0+
                    license:gpl2+)))) ; examples/transforms.c & lntest/*.c
 
+(define-public libskry
+  (package
+    (name "libskry")
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/GreatAttractor/libskry")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14kwng0j8wqzlb0gqg3ayq36l15dpz7kvxc56fa47j55b376bwh6"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list
+        (string-append
+         "LIBAV_INCLUDE_PATH=" (assoc-ref %build-inputs "ffmpeg") "/include"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ;; no configure provided
+         (delete 'check) ;; no tests provided
+         (replace 'install
+           ;; The Makefile lacks an ‘install’ target.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib"))
+                    (include (string-append out "/include")))
+               (copy-recursively "bin" lib)
+               (copy-recursively "include" include))
+             #t)))))
+    (inputs
+     `(("ffmpeg" ,ffmpeg)))
+    (home-page "https://github.com/GreatAttractor/libskry")
+    (synopsis "Astronimical lucky imaging library")
+    (description
+     "@code{libskry} implements the lucky imaging principle of astronomical
+imaging: creating a high-quality still image out of a series of many thousands)
+low quality ones")
+    (license license:gpl3+)))
+
 (define-public libpasastro
   ;; NOTE: (Sharlatan-20210122T215921+0000): the version tag has a build
   ;; error on spice which is resolved with the latest commit.
-- 
2.30.0