all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#50887] [PATCH] gnu: Add python-fitsio.
@ 2021-09-29  8:47 Konrad Hinsen
  2021-10-01 14:05 ` Xinglu Chen
  0 siblings, 1 reply; 4+ messages in thread
From: Konrad Hinsen @ 2021-09-29  8:47 UTC (permalink / raw)
  To: 50887


* gnu/packages/astronomy.scm (python-fitsio): 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 a3f7d5cbf4..4fba3aae99 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -96,6 +96,49 @@ in FITS files.")
     (license (license:non-copyleft "file://License.txt"
                           "See License.txt in the distribution."))))
 
+(define-public python-fitsio
+  (package
+    (name "python-fitsio")
+    (version "1.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "fitsio" version))
+       (sha256
+        (base32 "1llql2i6xr9lkdl81jx5nvz80kspamvira90546y32ldy551hq1l"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unbundle-cfitsio
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((cfitsio (assoc-ref inputs "cfitsio"))
+                    (includedir (string-append "\"" cfitsio "/include\""))
+                    (libdir (string-append "\"" cfitsio "/lib\"")))
+               ;; Use Guix' cfitsio instead of the bundled one
+               (substitute* "setup.py"
+                 (("self.use_system_fitsio = False") "pass")
+                 (("self.system_fitsio_includedir = None") "pass")
+                 (("self.system_fitsio_libdir = None") "pass")
+                 (("self.use_system_fitsio") "True")
+                 (("self.system_fitsio_includedir") includedir)
+                 (("self.system_fitsio_libdir") libdir)))
+             ;; The bzip2 test fails because Guix' cfitsio
+             ;; is built without bzip2 support.
+             (substitute* "fitsio/test.py"
+               (("'SKIP_BZIP_TEST' in os.environ") "True"))
+             #t)))))
+    (propagated-inputs
+     `(("python-numpy" ,python-numpy)
+       ("cfitsio" ,cfitsio)))
+    (home-page "https://github.com/esheldon/fitsio")
+    (synopsis
+     "Python library to read from and write to FITS files")
+    (description
+     "A compact Python library for reading from and writing to FITS files,
+based on the CFITSIO library.")
+    (license license:gpl2)))
+
 (define-public qfits
   (package
     (name "qfits")
-- 
2.33.0





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#50887] [PATCH] gnu: Add python-fitsio.
  2021-09-29  8:47 [bug#50887] [PATCH] gnu: Add python-fitsio Konrad Hinsen
@ 2021-10-01 14:05 ` Xinglu Chen
  2021-10-01 17:03   ` Konrad Hinsen
  0 siblings, 1 reply; 4+ messages in thread
From: Xinglu Chen @ 2021-10-01 14:05 UTC (permalink / raw)
  To: Konrad Hinsen, 50887

[-- Attachment #1: Type: text/plain, Size: 3493 bytes --]

On Wed, Sep 29 2021, Konrad Hinsen wrote:

> * gnu/packages/astronomy.scm (python-fitsio): 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 a3f7d5cbf4..4fba3aae99 100644
> --- a/gnu/packages/astronomy.scm
> +++ b/gnu/packages/astronomy.scm
> @@ -96,6 +96,49 @@ in FITS files.")
>      (license (license:non-copyleft "file://License.txt"
>                            "See License.txt in the distribution."))))
>  
> +(define-public python-fitsio
> +  (package
> +    (name "python-fitsio")
> +    (version "1.1.5")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (pypi-uri "fitsio" version))
> +       (sha256
> +        (base32 "1llql2i6xr9lkdl81jx5nvz80kspamvira90546y32ldy551hq1l"))))
> +    (build-system python-build-system)
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'unbundle-cfitsio
> +           (lambda* (#:key inputs #:allow-other-keys)
> +             (let* ((cfitsio (assoc-ref inputs "cfitsio"))
> +                    (includedir (string-append "\"" cfitsio "/include\""))
> +                    (libdir (string-append "\"" cfitsio "/lib\"")))
> +               ;; Use Guix' cfitsio instead of the bundled one
> +               (substitute* "setup.py"
> +                 (("self.use_system_fitsio = False") "pass")
> +                 (("self.system_fitsio_includedir = None") "pass")
> +                 (("self.system_fitsio_libdir = None") "pass")
> +                 (("self.use_system_fitsio") "True")
> +                 (("self.system_fitsio_includedir") includedir)
> +                 (("self.system_fitsio_libdir") libdir)))

Maybe the bundled cfitsio should also be deleted in a ‘snippet’ in the ‘origin’?

> +             ;; The bzip2 test fails because Guix' cfitsio
> +             ;; is built without bzip2 support.
> +             (substitute* "fitsio/test.py"
> +               (("'SKIP_BZIP_TEST' in os.environ") "True"))

This part should probably be put in a separate phase, maybe you could
call it ‘skip-bzip-test’.

> +             #t)))))

Phases don’t need to return #t.

> +    (propagated-inputs
> +     `(("python-numpy" ,python-numpy)
> +       ("cfitsio" ,cfitsio)))
> +    (home-page "https://github.com/esheldon/fitsio")
> +    (synopsis
> +     "Python library to read from and write to FITS files")
> +    (description
> +     "A compact Python library for reading from and writing to FITS files,
> +based on the CFITSIO library.")

The sentence is lacking a subject; the meaning of “FITS” should be
written (I had no idea what it meant).  I suggest something like

  This package provides a Python library for reading from and writing to
  @acronym{FITS, Flexible Image Transport System} files using the
  CFITSIO library.  Among other things, it can

  @itemize
  @item read and write image, binary, and ascii table extensions;

  @item read arbitrary subsets of tables in a lazy manner;

  @item query the rows and columns of a table;

  @item read and write header keywords;

  @item read and write Gzip files directory;

  @item read Zip and Bzip2 files.
  @end itemize

> +    (license license:gpl2)))

‘LICENSE.txt’ looks like gpl2+

Could you send an updated patch?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 861 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#50887] [PATCH] gnu: Add python-fitsio.
  2021-10-01 14:05 ` Xinglu Chen
@ 2021-10-01 17:03   ` Konrad Hinsen
  2021-10-04 14:10     ` bug#50887: " Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Konrad Hinsen @ 2021-10-01 17:03 UTC (permalink / raw)
  To: Xinglu Chen, 50887

[-- Attachment #1: Type: text/plain, Size: 272 bytes --]

Xinglu Chen <public@yoctocell.xyz> writes:

> Could you send an updated patch?

Here it comes. Thanks for the careful code review! I learned a few
things from this: I didn't know about snippets, nor about the subtle
differences between gpl2 and gpl2+.

Thanks,
  Konrad.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-python-fitsio.patch --]
[-- Type: text/x-diff, Size: 3294 bytes --]

From c95c0b18b4c2da6af7432a3dcf11c5f9984772f8 Mon Sep 17 00:00:00 2001
From: Konrad Hinsen <konrad.hinsen@fastmail.net>
Date: Wed, 29 Sep 2021 10:47:39 +0200
Subject: [PATCH] gnu: Add python-fitsio.

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

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index a3f7d5cbf4..287cf4a94c 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -96,6 +96,71 @@ in FITS files.")
     (license (license:non-copyleft "file://License.txt"
                           "See License.txt in the distribution."))))
 
+(define-public python-fitsio
+  (package
+    (name "python-fitsio")
+    (version "1.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "fitsio" version))
+       (sha256
+        (base32 "1llql2i6xr9lkdl81jx5nvz80kspamvira90546y32ldy551hq1l"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Remove the bundled cfitsio
+        `(begin
+           (delete-file-recursively "cfitsio3490")
+           (substitute* "MANIFEST.in"
+             (("recursive-include cfitsio3490.*$\n") ""))
+           #t))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unbundle-cfitsio
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((cfitsio (assoc-ref inputs "cfitsio"))
+                    (includedir (string-append "\"" cfitsio "/include\""))
+                    (libdir (string-append "\"" cfitsio "/lib\"")))
+               ;; Use Guix' cfitsio instead of the bundled one
+               (substitute* "setup.py"
+                 (("self.use_system_fitsio = False") "pass")
+                 (("self.system_fitsio_includedir = None") "pass")
+                 (("self.system_fitsio_libdir = None") "pass")
+                 (("self.use_system_fitsio") "True")
+                 (("self.system_fitsio_includedir") includedir)
+                 (("self.system_fitsio_libdir") libdir)))))
+         (add-after 'unpack 'skip-bzip2-test
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; The bzip2 test fails because Guix' cfitsio
+             ;; is built without bzip2 support.
+             (substitute* "fitsio/test.py"
+               (("'SKIP_BZIP_TEST' in os.environ") "True")))))))
+    (propagated-inputs
+     `(("python-numpy" ,python-numpy)
+       ("cfitsio" ,cfitsio)))
+    (home-page "https://github.com/esheldon/fitsio")
+    (synopsis
+     "Python library to read from and write to FITS files")
+    (description
+     "This package provides a Python library for reading from and writing
+to @acronym{FITS, Flexible Image Transport System} files using the
+CFITSIO library.  Among other things, it can
+
+@itemize
+@item read and write image, binary, and ascii table extensions;
+
+@item read arbitrary subsets of tables in a lazy manner;
+
+@item query the rows and columns of a table;
+
+@item read and write header keywords;
+
+@item read and write Gzip files.
+@end itemize")
+    (license license:gpl2+)))
+
 (define-public qfits
   (package
     (name "qfits")
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#50887: [PATCH] gnu: Add python-fitsio.
  2021-10-01 17:03   ` Konrad Hinsen
@ 2021-10-04 14:10     ` Ludovic Courtès
  0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2021-10-04 14:10 UTC (permalink / raw)
  To: Konrad Hinsen; +Cc: Xinglu Chen, 50887-done

Hi Konrad,

Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:

>>From c95c0b18b4c2da6af7432a3dcf11c5f9984772f8 Mon Sep 17 00:00:00 2001
> From: Konrad Hinsen <konrad.hinsen@fastmail.net>
> Date: Wed, 29 Sep 2021 10:47:39 +0200
> Subject: [PATCH] gnu: Add python-fitsio.
>
> * gnu/packages/astronomy.scm (python-fitsio): New variable.

Applied.  Thank you & thanks Xinglu for reviewing!

Ludo’.




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-10-04 14:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-29  8:47 [bug#50887] [PATCH] gnu: Add python-fitsio Konrad Hinsen
2021-10-01 14:05 ` Xinglu Chen
2021-10-01 17:03   ` Konrad Hinsen
2021-10-04 14:10     ` bug#50887: " Ludovic Courtès

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.