Subject: Re: [PATCH] gnu: Add imppg

From: Vinicius Monego <[email-masked]>
Date: Sat, 13 Nov 2021 01:49:44 +0000

Hi Sharlatan,

Em sex, 2021-11-12 às 21:21 +0000, Sharlatan Hellseher escreveu:
> * gnu/packages/astronomy.scm: (imppg): New variable.
> ---
>  gnu/packages/astronomy.scm | 53
> ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 53 insertions(+)
> 
> diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
> index fc8959faad..57f62dc24d 100644
> --- a/gnu/packages/astronomy.scm
> +++ b/gnu/packages/astronomy.scm
> @@ -32,6 +32,7 @@ (define-module (gnu packages astronomy)
>    #:use-module (gnu packages)
>    #:use-module (gnu packages algebra)
>    #:use-module (gnu packages autotools)
> +  #:use-module (gnu packages boost)
>    #:use-module (gnu packages check)
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages curl)
> @@ -56,6 +57,7 @@ (define-module (gnu packages astronomy)
>    #:use-module (gnu packages qt)
>    #:use-module (gnu packages version-control)
>    #:use-module (gnu packages video)
> +  #:use-module (gnu packages wxwidgets)
>    #:use-module (gnu packages xiph)
>    #:use-module (gnu packages xml)
>    #:use-module (gnu packages xorg)
> @@ -986,6 +988,57 @@ (define-public sgp4
>  It can be used to calculate the trajectory of satellites.")
>        (license license:asl2.0))))
>  
> +(define-public imppg
> +  (package
> +    (name "imppg")
> +    (version "0.6.4")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url (string-append
> "https://github.com/GreatAttractor/" name))

AFAIK we don't use 'name' in the url anymore, it should be hardcoded.

> +             (commit (string-append "v" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32
> "04synbmyz0hkipl1cdc26nr42r57v494yjw8pi4jx0jrxrawgj9h"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     `(#:tests? #f ; No test provided
> +       #:phases
> +       (modify-phases %standard-phases
> +         (replace 'configure
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (mkdir-p "build")
> +             (chdir "build")
> +             (invoke
> +              "cmake"
> +              "-G" "Unix Makefiles"
> +              "-DCMAKE_BUILD_TYPE=Release"
> +              (string-append "-DCMAKE_INSTALL_PREFIX=" (assoc-ref
> outputs "out"))
> +              ".."))))))

This is unusual. Why are we overriding the configure phase? I could
build the package just fine with the standard phase.

CMAKE_BUILD_TYPE can be set to Release using '#:build-type "Release"'.
Other CMake variables can be changed in #:configure-flags.

AFAIK Guix also avoids setting CMAKE_BUILD_TYPE to "Release" without a
good reason, such as debug symbols being too large.

> +    (native-inputs
> +     `(("boost" ,boost)
> +       ("pkg-config" ,pkg-config)))
> +    (inputs
> +     `(("cfitsio" ,cfitsio)
> +       ("freeimage" ,freeimage)
> +       ("glew" ,glew)
> +       ("wxwidgets" ,wxwidgets)))
> +    (home-page "https://github.com/GreatAttractor/imppg")
> +    (synopsis "Astronomical Image Post-Proccessor (ImPPG)")
> +    (description
> +     "ImPPG performs Lucy-Richardson deconvolution, unsharp masking,
> brightness
> +normalization and tone curve adjustment.  It can also apply
> previously specified
> +processing settings to multiple images.  All operations are
> performed using
> +32-bit floating-point arithmetic.
> +
> +Supported input formats: FITS, BMP, JPEG, PNG, TIFF (most of bit
> depths and
> +compression methods), TGA and more.  Images are processed in
> grayscale and can be
> +saved as: BMP 8-bit; PNG 8-bit; TIFF 8-bit, 16-bit, 32-bit floating-
> point (no
> +compression, LZW- or ZIP-compressed), FITS 8-bit, 16-bit, 32-bit
> +floating-point.")

Description exceeded 78 columns in 3 lines.

> +     (license license:gpl3+)))
> +
>  (define-public indi
>    (package
>      (name "indi")

LGTM otherwise!