[PATCH] gnu: Add julia-cfitsio-jll.

  • Done
  • quality assurance status badge
Details
3 participants
  • Efraim Flashner
  • Sharlatan Hellseher
  • Simon Tournier
Owner
unassigned
Submitted by
Sharlatan Hellseher
Severity
normal

Debbugs page

Sharlatan Hellseher wrote 2 years ago
(address . guix-patches@gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230113221658.8158-1-sharlatanus@gmail.com
* gnu/packages/julia-jll.scm (julia-cfitsio-jll): New variable.
---
gnu/packages/julia-jll.scm | 45 ++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

Toggle diff (78 lines)
diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm
index 2b0f644736..364088c4b0 100644
--- a/gnu/packages/julia-jll.scm
+++ b/gnu/packages/julia-jll.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
+;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,12 +22,14 @@
(define-module (gnu packages julia-jll)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system julia)
#:use-module (gnu packages)
#:use-module (gnu packages audio)
+ #:use-module (gnu packages astronomy)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages fontutils)
@@ -146,6 +149,48 @@ (define-public julia-cairo-jll
(description "This package provides a wrapper for the cairo library.")
(license license:expat)))
+(define-public julia-cfitsio-jll
+ (package
+ (name "julia-cfitsio-jll")
+ (version "4.0.0+0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaBinaryWrappers/CFITSIO_jll.jl")
+ (commit (string-append "CFITSIO-v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1k0mqmpyfjr3ibcmda08llw8m166zw0n3lh5y5aj81q37lrxw990"))))
+ (build-system julia-build-system)
+ (arguments
+ (list
+ #:tests? #f ; no runtests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'link-depot 'override-binary-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (map
+ (lambda (wrapper)
+ (substitute* wrapper
+ (("using LibCURL_jll") "") ; Not require to download cfitsio.
+ (("using Zlib_jll") "") ; Not require to upnpack not donwloaded archvie.
+ (("generate_init_header.*") "generate_init_header()\n" )
+ (("generate_wrapper_header.*")
+ (string-append
+ "generate_wrapper_header(\"CFITSIO\", \""
+ (assoc-ref inputs "cfitsio") "\")\n"))))
+ ;; There's a Julia file for each platform, override them all
+ (find-files "src/wrappers/" "\\.jl$")))))))
+ (inputs
+ (list cfitsio))
+ (propagated-inputs
+ (list julia-jllwrappers))
+ (home-page "https://github.com/JuliaBinaryWrappers/CFITSIO_jll.jl")
+ (synopsis "cfitsio library wrappers")
+ (description "This package provides a wrapper for the cfitsio library.")
+ (license license:expat)))
+
(define-public julia-compilersupportlibraries-jll
(package
(name "julia-compilersupportlibraries-jll")
--
2.38.1
Simon Tournier wrote 2 years ago
(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
87zgais8z5.fsf@gmail.com
Hi,

On ven., 13 janv. 2023 at 22:16, Sharlatan Hellseher <sharlatanus@gmail.com> wrote:
Toggle quote (2 lines)
> * gnu/packages/julia-jll.scm (julia-cfitsio-jll): New variable.

Thank for this patch.

Well, out of curiosity, why is this package required? I mean, usually
JLL packages are binding to access from Julia to some libraries.
Therefore, do you plan to use this package for another regular Julia
package?


Toggle quote (2 lines)
> + #:use-module (guix gexp)

[...]

Toggle quote (4 lines)
> + #~(modify-phases %standard-phases
> + (add-after 'link-depot 'override-binary-path
> + (lambda* (#:key inputs #:allow-other-keys)

[...]

Toggle quote (2 lines)
> + (assoc-ref inputs "cfitsio") "\")\n"))))

I do not think (guix gexp) is required here. For instance, other
packages just use, for instance:

Toggle snippet (16 lines)
(arguments
'(#:tests? #f ; no runtests
#:phases
(modify-phases %standard-phases
(add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys)
(map
(lambda (wrapper)
(substitute* wrapper
(("artifact\"FFMPEG\"")
(string-append "\"" (assoc-ref inputs "ffmpeg") "\""))))
;; There's a Julia file for each platform, override them all
(find-files "src/wrappers/" "\\.jl$")))))))


Cheers,
simon
Sharlatan Hellseher wrote 2 years ago
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)(address . 60793@debbugs.gnu.org)
CAO+9K5rq73BAw28ewe3hvOuuCvq8u3=spKy2ZC_YOBDU73=P5w@mail.gmail.com
Hi Simon,

Thanks for your review and comments.

Yes it's a long journey to bring Julia's Astronomical projects to Guix.

Here is my plan:

cfitsio, wcs and erfa would be essential jll bindings for base Julia
packages.

I've got a question on how to group Julia packages related just to
Astronomy. gnu/packages/astronomy.scm contains python bindings to cfitsio,
wcs and erfa would I follow the same pass and add Julia packages next to
them?

Regards,
Oleg

On Mon, 16 Jan 2023, 18:36 Simon Tournier, <zimon.toutoune@gmail.com> wrote:

Toggle quote (50 lines)
> Hi,
>
> On ven., 13 janv. 2023 at 22:16, Sharlatan Hellseher <
> sharlatanus@gmail.com> wrote:
> > * gnu/packages/julia-jll.scm (julia-cfitsio-jll): New variable.
>
> Thank for this patch.
>
> Well, out of curiosity, why is this package required? I mean, usually
> JLL packages are binding to access from Julia to some libraries.
> Therefore, do you plan to use this package for another regular Julia
> package?
>
>
> > + #:use-module (guix gexp)
>
> [...]
>
> > + #~(modify-phases %standard-phases
> > + (add-after 'link-depot 'override-binary-path
> > + (lambda* (#:key inputs #:allow-other-keys)
>
> [...]
>
> > + (assoc-ref inputs "cfitsio") "\")\n"))))
>
> I do not think (guix gexp) is required here. For instance, other
> packages just use, for instance:
>
> --8<---------------cut here---------------start------------->8---
> (arguments
> '(#:tests? #f ; no runtests
> #:phases
> (modify-phases %standard-phases
> (add-after 'link-depot 'override-binary-path
> (lambda* (#:key inputs #:allow-other-keys)
> (map
> (lambda (wrapper)
> (substitute* wrapper
> (("artifact\"FFMPEG\"")
> (string-append "\"" (assoc-ref inputs "ffmpeg")
> "\""))))
> ;; There's a Julia file for each platform, override them all
> (find-files "src/wrappers/" "\\.jl$")))))))
> --8<---------------cut here---------------end--------------->8---
>
>
> Cheers,
> simon
>
Attachment: file
Simon Tournier wrote 2 years ago
(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)(address . 60793@debbugs.gnu.org)
86a62hoady.fsf@gmail.com
Hi,

On Mon, 16 Jan 2023 at 20:36, Sharlatan Hellseher <sharlatanus@gmail.com> wrote:

Toggle quote (3 lines)
> Yes it's a long journey to bring Julia's Astronomical projects to
> Guix.

Cool! Thank you for this effort.


Toggle quote (5 lines)
> I've got a question on how to group Julia packages related just to
> Astronomy. gnu/packages/astronomy.scm contains python bindings to cfitsio,
> wcs and erfa would I follow the same pass and add Julia packages next to
> them?

Well, I think all Julia packages should go to gnu/packages/julia-xyz.scm
with the prefix ’julia-’ for the symbol and the package name.

If, or when, the Julia packages related to astronomy will be too many,
then it will be possible to just move them to
gnu/packages/julia-astronomy.scm.

Last, when writing new Julia packages, please consider some implicit
conventions in these Julia-related modules:

+ sort alphabetically, package name and inputs,

+ if one test does not pass, please disallow it using something like:
’#~(modify-phases %standard-phases (add-after 'link-depot
'skip-failing-test’ (gexp and after link-depot),

+ try set the packages used by the tests under native-inputs.

Cheers,
simon
Sharlatan Hellseher wrote 2 years ago
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)(address . 60793@debbugs.gnu.org)
CAO+9K5oT5YLU9ZguDNLgeuKtM4Vdh42aiUyhXRL38VYzrmzcNw@mail.gmail.com
Hi Simon,

I've prepared the full series of patches which include
julia-cfitsio-jll -> julia-cfitsio -> julia-fitsio.
All of the them put in alphabetical order, passed lint and build on
x86_64 hardware.

On Tue, 17 Jan 2023 at 08:39, Simon Tournier <zimon.toutoune@gmail.com> wrote:
Toggle quote (39 lines)
>
> Hi,
>
> On Mon, 16 Jan 2023 at 20:36, Sharlatan Hellseher <sharlatanus@gmail.com> wrote:
>
> > Yes it's a long journey to bring Julia's Astronomical projects to
> > Guix.
>
> Cool! Thank you for this effort.
>
>
> > I've got a question on how to group Julia packages related just to
> > Astronomy. gnu/packages/astronomy.scm contains python bindings to cfitsio,
> > wcs and erfa would I follow the same pass and add Julia packages next to
> > them?
>
> Well, I think all Julia packages should go to gnu/packages/julia-xyz.scm
> with the prefix ’julia-’ for the symbol and the package name.
>
> If, or when, the Julia packages related to astronomy will be too many,
> then it will be possible to just move them to
> gnu/packages/julia-astronomy.scm.
>
> Last, when writing new Julia packages, please consider some implicit
> conventions in these Julia-related modules:
>
> + sort alphabetically, package name and inputs,
>
> + if one test does not pass, please disallow it using something like:
> ’#~(modify-phases %standard-phases (add-after 'link-depot
> 'skip-failing-test’ (gexp and after link-depot),
>
> + try set the packages used by the tests under native-inputs.
>
> Cheers,
> simon



--

… наш разум - превосходная объяснительная машина которая способна
найти смысл почти в чем угодно, истолковать любой феномен, но
совершенно не в состоянии принять мысль о непредсказуемости.
Sharlatan Hellseher wrote 2 years ago
[PATCH 1/3] gnu: Add julia-cfitsio-jll.
(address . 60793@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230129222925.11361-1-sharlatanus@gmail.com
* gnu/packages/julia-jll.scm (julia-cfitsio-jll): New variable.
---
gnu/packages/julia-jll.scm | 43 ++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)

Toggle diff (70 lines)
diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm
index 2b0f644736..7625ff512a 100644
--- a/gnu/packages/julia-jll.scm
+++ b/gnu/packages/julia-jll.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
+;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,6 +27,7 @@ (define-module (gnu packages julia-jll)
#:use-module (guix utils)
#:use-module (guix build-system julia)
#:use-module (gnu packages)
+ #:use-module (gnu packages astronomy)
#:use-module (gnu packages audio)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
@@ -146,6 +148,47 @@ (define-public julia-cairo-jll
(description "This package provides a wrapper for the cairo library.")
(license license:expat)))
+(define-public julia-cfitsio-jll
+ (package
+ (name "julia-cfitsio-jll")
+ (version "4.0.0+0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaBinaryWrappers/CFITSIO_jll.jl")
+ (commit (string-append "CFITSIO-v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1k0mqmpyfjr3ibcmda08llw8m166zw0n3lh5y5aj81q37lrxw990"))))
+ (build-system julia-build-system)
+ (arguments
+ '(#:tests? #f ; no runtests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'link-depot 'override-binary-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (map
+ (lambda (wrapper)
+ (substitute* wrapper
+ (("using LibCURL_jll") "") ; We use Guix's cfitsio
+ (("using Zlib_jll") "") ; Not require to upnpack not donwloaded archvie.
+ (("generate_init_header.*") "generate_init_header()\n" )
+ (("generate_wrapper_header.*")
+ (string-append
+ "generate_wrapper_header(\"CFITSIO\", \""
+ (assoc-ref inputs "cfitsio") "\")\n"))))
+ ;; There's a Julia file for each platform, override them all
+ (find-files "src/wrappers/" "\\.jl$")))))))
+ (inputs
+ (list cfitsio))
+ (propagated-inputs
+ (list julia-jllwrappers))
+ (home-page "https://github.com/JuliaBinaryWrappers/CFITSIO_jll.jl")
+ (synopsis "cfitsio library wrappers")
+ (description "This package provides a wrapper for the cfitsio library.")
+ (license license:expat)))
+
(define-public julia-compilersupportlibraries-jll
(package
(name "julia-compilersupportlibraries-jll")
--
2.39.1
Sharlatan Hellseher wrote 2 years ago
[PATCH 2/3] gnu: Add julia-cfitsio.
(address . 60793@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230129222925.11361-2-sharlatanus@gmail.com
* gnu/packages/julia-xyz.scm (julia-cfitsio): New variable.
---
gnu/packages/julia-xyz.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 414aba03f0..ff6862c4f6 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -746,6 +746,39 @@ (define-public julia-cenum
(description "This package provides a C-compatible enum for Julia.")
(license license:expat)))
+(define-public julia-cfitsio
+ (package
+ (name "julia-cfitsio")
+ (version "1.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaAstro/CFITSIO.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "05bxzzjcc021p3hi092h06r2q7qnvql0xz1alggi83i0pp1mxp6d"))))
+ (build-system julia-build-system)
+ (native-inputs (list julia-aqua))
+ (propagated-inputs (list julia-cfitsio-jll))
+ (home-page "https://github.com/JuliaAstro/CFITSIO.jl")
+ (synopsis "C-style interface to the libcfitsio library")
+ (description "This package provides Julia implementation of C-style interface to CFITSIO
+functions with following features:
+@itemize
+
+@item Function names closely mirror the C interface (e.g., @code{fits_open_file()}).
+
+@item Functions operate on @code{FITSFile}, a thin wrapper for fitsfile C struct
+(@code{FITSFile} has concept of \"current HDU\", as in CFITSIO).
+
+@item Note that the wrapper functions do check the return status from CFITSIO
+and throw an error with the appropriate message.
+
+@end itemize")
+ (license license:expat)))
+
(define-public julia-chainrules
(package
(name "julia-chainrules")
--
2.39.1
Sharlatan Hellseher wrote 2 years ago
[PATCH 3/3] gnu: Add julia-fitsio.
(address . 60793@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230129222925.11361-3-sharlatanus@gmail.com
* gnu/packages/julia-xyz.scm (julia-fitsio): New variable.
---
gnu/packages/julia-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index ff6862c4f6..5a2b6b8c22 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2130,6 +2131,31 @@ (define-public julia-finitedifferences
using finite difference.")
(license license:expat)))
+(define-public julia-fitsio
+ (package
+ (name "julia-fitsio")
+ (version "0.17.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaAstro/FITSIO.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "10w7cdb2cvcwpkcfdz2fwl4ji5rfdv8w9msc9gfd8d34k58bk8c5"))))
+ (build-system julia-build-system)
+ (native-inputs
+ (list julia-aqua julia-orderedcollections))
+ (propagated-inputs
+ (list julia-cfitsio julia-reexport julia-tables))
+ (home-page "https://github.com/JuliaAstro/CFITSIO.jl")
+ (synopsis "Astronomical FITS file support for Julia")
+ (description "This package provides Julia implementation for reading and writing
+@acronym{FITS, Flexible Image Transport System} files, based on the
+@code{cfitsio} library.")
+ (license license:expat)))
+
(define-public julia-fixedpointnumbers
(let ((commit "59ee94b93f2f1ee75544ef44187fc0e440cd8015")
(revision "1"))
--
2.39.1
Simon Tournier wrote 2 years ago
Re: [bug#60793] [PATCH 1/3] gnu: Add julia-cfitsio-jll.
(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
875ycomgok.fsf@gmail.com
Hi,

On dim., 29 janv. 2023 at 22:29, Sharlatan Hellseher <sharlatanus@gmail.com> wrote:

Toggle quote (9 lines)
> + #:phases
> + (modify-phases %standard-phases
> + (add-after 'link-depot 'override-binary-path
> + (lambda* (#:key inputs #:allow-other-keys)
> + (map
> + (lambda (wrapper)
> + (substitute* wrapper
> + (("using LibCURL_jll") "") ; We use Guix's cfitsio
> + (("using Zlib_jll") "") ; Not require to upnpack not donwloaded archvie.
--^
Typo

Typo: s/upnpack/unpack

Toggle quote (2 lines)
> + (synopsis "cfitsio library wrappers")

Toggle snippet (3 lines)
gnu/packages/julia-jll.scm:188:14: julia-cfitsio-jll@4.0.0+0: synopsis should start with an upper-case letter or digit

Maybe,

(synopsis "CFITSIO library wrappers")

because it seems the official name:


Cheers,
simon
Simon Tournier wrote 2 years ago
Re: [bug#60793] [PATCH] gnu: Add julia-cfitsio-jll.
(address . 60793@debbugs.gnu.org)
871qncmg3q.fsf@gmail.com
Hi,

On dim., 29 janv. 2023 at 22:26, Sharlatan Hellseher <sharlatanus@gmail.com> wrote:

Toggle quote (5 lines)
> I've prepared the full series of patches which include
> julia-cfitsio-jll -> julia-cfitsio -> julia-fitsio.
> All of the them put in alphabetical order, passed lint and build on
> x86_64 hardware.

LGTM. I have tweaked in v2.
Efraim?

Cheers,
simon
Simon Tournier wrote 2 years ago
[PATCH v2 1/3] gnu: Add julia-cfitsio-jll.
(address . 60793@debbugs.gnu.org)
20230130111211.372932-1-zimon.toutoune@gmail.com
From: Sharlatan Hellseher <sharlatanus@gmail.com>

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

Toggle diff (72 lines)
diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm
index 2b0f644736..80e4508196 100644
--- a/gnu/packages/julia-jll.scm
+++ b/gnu/packages/julia-jll.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
+;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,6 +27,7 @@ (define-module (gnu packages julia-jll)
#:use-module (guix utils)
#:use-module (guix build-system julia)
#:use-module (gnu packages)
+ #:use-module (gnu packages astronomy)
#:use-module (gnu packages audio)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
@@ -146,6 +148,47 @@ (define-public julia-cairo-jll
(description "This package provides a wrapper for the cairo library.")
(license license:expat)))
+(define-public julia-cfitsio-jll
+ (package
+ (name "julia-cfitsio-jll")
+ (version "4.0.0+0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaBinaryWrappers/CFITSIO_jll.jl")
+ (commit (string-append "CFITSIO-v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1k0mqmpyfjr3ibcmda08llw8m166zw0n3lh5y5aj81q37lrxw990"))))
+ (build-system julia-build-system)
+ (arguments
+ '(#:tests? #f ; no runtests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'link-depot 'override-binary-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (map
+ (lambda (wrapper)
+ (substitute* wrapper
+ (("using LibCURL_jll") "") ; We use Guix's cfitsio
+ (("using Zlib_jll") "") ; Not require to unpack not donwloaded archvie.
+ (("generate_init_header.*") "generate_init_header()\n" )
+ (("generate_wrapper_header.*")
+ (string-append
+ "generate_wrapper_header(\"CFITSIO\", \""
+ (assoc-ref inputs "cfitsio") "\")\n"))))
+ ;; There's a Julia file for each platform, override them all
+ (find-files "src/wrappers/" "\\.jl$")))))))
+ (inputs
+ (list cfitsio))
+ (propagated-inputs
+ (list julia-jllwrappers))
+ (home-page "https://github.com/JuliaBinaryWrappers/CFITSIO_jll.jl")
+ (synopsis "CFITSIO library wrappers")
+ (description "This package provides a wrapper for the cfitsio library.")
+ (license license:expat)))
+
(define-public julia-compilersupportlibraries-jll
(package
(name "julia-compilersupportlibraries-jll")

base-commit: 595b53b74e3ef57a1c0c96108ba86d38a170a241
--
2.38.1
Simon Tournier wrote 2 years ago
[PATCH v2 2/3] gnu: Add julia-cfitsio.
(address . 60793@debbugs.gnu.org)
20230130111211.372932-2-zimon.toutoune@gmail.com
From: Sharlatan Hellseher <sharlatanus@gmail.com>

* gnu/packages/julia-xyz.scm (julia-cfitsio): New variable.
---
gnu/packages/julia-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 414aba03f0..8c7f0f70cf 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -746,6 +746,36 @@ (define-public julia-cenum
(description "This package provides a C-compatible enum for Julia.")
(license license:expat)))
+(define-public julia-cfitsio
+ (package
+ (name "julia-cfitsio")
+ (version "1.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaAstro/CFITSIO.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "05bxzzjcc021p3hi092h06r2q7qnvql0xz1alggi83i0pp1mxp6d"))))
+ (build-system julia-build-system)
+ (native-inputs (list julia-aqua))
+ (propagated-inputs (list julia-cfitsio-jll))
+ (home-page "https://github.com/JuliaAstro/CFITSIO.jl")
+ (synopsis "C-style interface to the libcfitsio library")
+ (description "This package provides Julia implementation of C-style
+interface to CFITSIO functions with following features:
+@itemize
+@item Function names closely mirror the C interface (e.g.,
+@code{fits_open_file()}).
+@item Functions operate on @code{FITSFile}, a thin wrapper for fitsfile C
+struct (@code{FITSFile} has concept of \"current HDU\", as in CFITSIO).
+@item Wrapper functions do check the return status from CFITSIO and throw an
+error with the appropriate message.
+@end itemize")
+ (license license:expat)))
+
(define-public julia-chainrules
(package
(name "julia-chainrules")
--
2.38.1
Simon Tournier wrote 2 years ago
[PATCH v2 3/3] gnu: Add julia-fitsio.
(address . 60793@debbugs.gnu.org)
20230130111211.372932-3-zimon.toutoune@gmail.com
From: Sharlatan Hellseher <sharlatanus@gmail.com>

* gnu/packages/julia-xyz.scm (julia-fitsio): New variable.
---
gnu/packages/julia-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 8c7f0f70cf..ffc600f7f8 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2127,6 +2128,31 @@ (define-public julia-finitedifferences
using finite difference.")
(license license:expat)))
+(define-public julia-fitsio
+ (package
+ (name "julia-fitsio")
+ (version "0.17.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaAstro/FITSIO.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "10w7cdb2cvcwpkcfdz2fwl4ji5rfdv8w9msc9gfd8d34k58bk8c5"))))
+ (build-system julia-build-system)
+ (native-inputs
+ (list julia-aqua julia-orderedcollections))
+ (propagated-inputs
+ (list julia-cfitsio julia-reexport julia-tables))
+ (home-page "https://github.com/JuliaAstro/CFITSIO.jl")
+ (synopsis "Astronomical FITS file support for Julia")
+ (description "This package provides Julia implementation for reading and
+writing @acronym{FITS, Flexible Image Transport System} files, based on the
+@code{cfitsio} library.")
+ (license license:expat)))
+
(define-public julia-fixedpointnumbers
(let ((commit "59ee94b93f2f1ee75544ef44187fc0e440cd8015")
(revision "1"))
--
2.38.1
Efraim Flashner wrote 2 years ago
Re: [PATCH v2 1/3] gnu: Add julia-cfitsio-jll.
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)
Y+N1vQlHqSI3UKMR@3900XT
Thanks! Patches pushed. I look forward to more julia astro packages :)

--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmPjdb0ACgkQQarn3Mo9
g1FDXBAAttpOXLMwbPgNIzmjl4PJz5E8iapmBEnXW81Ex5MY8PeVj14Zc/rGMSrl
8tkHs6ROyvAi9nH1Nca8SwKdlMPrZ8Cq5MTSRbRVyom9ezT41cZPp1r9+UYRpoQX
/KU71Gb0UWf5OgNDnoYBsA3g6xZBXkLQQ7XD+XYvxNbNkuu8mJdhcrEPmvR0WS3e
3moSAtxM82fwlxf2xWIAPCWPr4YtYcb/26gCXPnrSRbbPNX/3B/24J2/7/NSbAS6
tWeM03aj0vOIDdhaIXIp75QHsZzZEvjzZO/+mIsnyEYfD2dm4qZ5GFgBGEQzLp8L
xcpE4SKVzEh7mkm5ChU/sxjVNX1MmJa5KULBU9LnGddgBrTmsHF5I3e8QGS2gQiT
26KYw36yMJPU0HFUsC7Hc31rguZXgY6sNw+DNOm4pw5JuAvZMfZVlhvb/X4P6gD/
P6G65hQOusO5j8WyhHHYyYpwohFS4QpKe/+y+oRvIu+nrGx1DaP2zjQtVQGTUPQ9
46fwVYDHWcMb/2PVADybjozrkWvsIm6Fz/YHdzLd+NmRlMARjEAtZX7cBeHbhr+p
c2Ojx0OzhlUsxxQ4l6vHIYoBCgfaazlC71k8YSoz82HK8Dgh2zKd96Zq7ObrIPoH
PtWmBO33bvUlIl8wpujoYhO4QA4Q841UdptRD4ZO/I+TBJB8hio=
=x9TU
-----END PGP SIGNATURE-----


Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 60793@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 60793
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help