aboutsummaryrefslogtreecommitdiff
path: root/gn/packages/julia.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gn/packages/julia.scm')
-rw-r--r--gn/packages/julia.scm1293
1 files changed, 1221 insertions, 72 deletions
diff --git a/gn/packages/julia.scm b/gn/packages/julia.scm
index 31cc29c..a00244f 100644
--- a/gn/packages/julia.scm
+++ b/gn/packages/julia.scm
@@ -17,6 +17,7 @@
#:use-module (gnu packages julia-xyz)
#:use-module (gnu packages python)
#:use-module (gnu packages statistics)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (ice-9 match))
@@ -24,7 +25,7 @@
(define-public julia-visuals
(let ((commit "e8e2b601f40a76c8f20f0ddfe80c56257dd9a294")
- (revision "2"))
+ (revision "3"))
(package
(name "julia-visuals")
(version (git-version "0.0.0" revision commit))
@@ -51,6 +52,7 @@
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/bin"))
;; Copied from the Dockerfile.
(for-each
(lambda (file)
@@ -59,6 +61,7 @@
"environment.yml"
"setup.py"
"runpluto.sh"
+ "runsliderserver.sh"
"notebooks"
"Project.toml")))))
(add-after 'install 'wrap-program
@@ -68,11 +71,15 @@
(wrap-script (string-append out "/runpluto.sh")
`("PATH" ":" prefix (,(string-append (assoc-ref inputs "julia") "/bin")
,(string-append (assoc-ref inputs "coreutils") "/bin")))
+ `("JULIA_LOAD_PATH" ":" prefix (,(getenv "JULIA_LOAD_PATH"))))
+ (wrap-script (string-append out "/runsliderserver.sh")
+ `("PATH" ":" prefix (,(string-append (assoc-ref inputs "julia") "/bin")
+ ,(string-append (assoc-ref inputs "coreutils") "/bin")))
`("JULIA_LOAD_PATH" ":" prefix (,(getenv "JULIA_LOAD_PATH")))))))
- (add-after 'install 'create-run-program
+ (add-after 'install 'create-runpluto
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
- (with-output-to-file (string-append out "/runpluto")
+ (with-output-to-file (string-append out "/bin/runpluto")
(lambda ()
(format #t "#!~a --no-auto-compile
!#
@@ -93,25 +100,64 @@
(getenv "JULIA_LOAD_PATH")
(dirname (search-input-file inputs "/bin/yes"))
(search-input-file inputs "/bin/julia"))))
- (chmod (string-append out "/runpluto") #o555))))
+ (chmod (string-append out "/bin/runpluto") #o555))))
+ (add-after 'install 'create-runsliderserver
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (with-output-to-file (string-append out "/bin/runsliderserver")
+ (lambda ()
+ (format #t "#!~a --no-auto-compile
+!#
+(setenv \"JULIA_LOAD_PATH\" \"~a\")
+(setenv \"PATH\" \"~a\")
+;; First initialise or update the julia registry:
+(zero? (system* \"~a\"
+ \"--optimize=0\"
+ ;; Used by L1-penalty.jl:
+ ;; \"-e\" \"import Pkg; Pkg.add(\\\"PlotlyBase\\\")\"
+ \"-e\" \"import Pkg; Pkg.update()\"))
+(zero? (system* \"~a\"
+ \"--optimize=0\"
+ \"-e\" \"import PlutoSliderServer;
+ PlutoSliderServer.run_directory(
+ \\\"~a/notebooks/\\\",
+ SliderServer_port=4343,
+ SliderServer_host=\\\"0.0.0.0\\\")\"))\n"
+ (search-input-file inputs "/bin/guile")
+ (getenv "JULIA_LOAD_PATH")
+ (dirname (search-input-file inputs "/bin/yes"))
+ (search-input-file inputs "/bin/julia")
+ (search-input-file inputs "/bin/julia")
+ out)))
+ (chmod (string-append out "/bin/runsliderserver") #o555))))
(replace 'precompile
(lambda _
(invoke "julia" "-e" "\"import Pkg; Pkg.instantiate(); Pkg.status(); Pkg.precompile()\""))))))
+ #;
(propagated-inputs
+ ;; This doesn't seem to actually be used anywhere
`(;; from setup.py
("python-jupyter-server-proxy"
,(@ (gn packages python) python-jupyter-server-proxy-1))))
(inputs
- (list julia-distributions
+ ;; Ideally we'd use more of these packages, but we end up downloading
+ ;; most of them anyway when the service starts, so we've commented them
+ ;; out for now.
+ (list ;julia-cairomakie ; 0.8.13
+ ;julia-distributions ; 0.25.76
;julia-interactiveutils ; stdlib
- julia-latexstrings
+ ;julia-latexstrings ; 1.3.0
;julia-markdown ; stdlib
- julia-optim
- julia-plots
- julia-pluto
- julia-plutoui
+ ;julia-optim ; 1.7.2
+ ;julia-plots ; 1.35.3
+ ;julia-pluto ; 0.19.11
+ julia-plutosliderserver ; *
+ ;julia-plutoui ; 0.7.46
+ ;julia-prettytables ; 2.1.0
+ ;julia-quadgk ; 2.5.0
+ ;julia-roots ; 2.0.3
(@ (gnu packages guile) guile-3.0))) ; for wrap-script
(home-page "https://github.com/sens/visuals")
(synopsis "Visualizations using Pluto.jl notebooks")
@@ -302,25 +348,35 @@ distributed computing.")
(base32 "0nqlnkh8grxfm8d1mivi7dnrvb31bznj9s540a10d2v396ikfggn"))))
(build-system julia-build-system)
(arguments
- `(#:tests? #f)) ; Some failed tests
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'adjust-tests
+ (lambda _
+ ;; Something about logpdf fails in both of these test sets.
+ (substitute* "test/multivariate/dirichlet.jl"
+ (("\\@testset \"_logpdf\" begin")
+ "@testset \"_logpdf\" begin return;"))
+ (substitute* "test/univariate/discrete/negativebinomial.jl"
+ ;; The negative numbers something something wrong in logpdf.
+ (("0, 10, 42, -1, -5, -13") "0, 10, 42")))))))
(propagated-inputs
- `(("julia-chainrulescore" ,julia-chainrulescore)
- ("julia-densityinterface" ,julia-densityinterface)
- ("julia-fillarrays" ,julia-fillarrays)
- ("julia-pdmats" ,julia-pdmats)
- ("julia-quadgk" ,julia-quadgk)
- ("julia-specialfunctions" ,julia-specialfunctions)
- ("julia-statsbase" ,julia-statsbase)
- ("julia-statsfuns" ,julia-statsfuns)))
+ (list julia-chainrulescore ; 1
+ julia-densityinterface ; 0.4
+ julia-fillarrays ; 0.9 .. 0.13
+ julia-pdmats ; 0.10, 0.11
+ julia-quadgk ; 2
+ julia-specialfunctions ; 1.2, 2
+ julia-statsbase ; 0.32, 0.33
+ julia-statsfuns)) ; 0.9.15, 1
(native-inputs
- `(("julia-calculus" ,julia-calculus)
- ("julia-chainrulestestutils" ,julia-chainrulestestutils)
- ("julia-finitedifferences" ,julia-finitedifferences)
- ("julia-forwarddiff" ,julia-forwarddiff)
- ("julia-json" ,julia-json)
- ("julia-offsetarrays" ,julia-offsetarrays)
- ("julia-stablerngs" ,julia-stablerngs)
- ("julia-staticarrays" ,julia-staticarrays)))
+ (list julia-calculus
+ julia-chainrulestestutils
+ julia-finitedifferences
+ julia-forwarddiff
+ julia-json
+ julia-offsetarrays
+ julia-stablerngs
+ julia-staticarrays))
(home-page "https://github.com/JuliaStats/Distributions.jl")
(synopsis "Probability distributions and associated functions")
(description "Julia package for probability distributions and associated
@@ -335,6 +391,302 @@ properties
@end enumerate")
(license license:expat)))
+(define-public julia-fromfile
+ (package
+ (name "julia-fromfile")
+ (version "0.1.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Roger-luo/FromFile.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0jn394294d4s1fqsfiwpiy6dzlca4ciy54l2xviwyzhvixmlfrwn"))))
+ (build-system julia-build-system)
+ (arguments
+ '(#:tests? #f)) ; Tests require network access
+ (propagated-inputs
+ (list julia-requires))
+ (home-page "https://github.com/Roger-luo/FromFile.jl")
+ (synopsis "Julia enhancement proposal for implicit per file module in Julia")
+ (description "This package exports a macro @code{@@from}, which can be used
+to import objects from files.")
+ (license license:expat)))
+
+(define-public julia-git
+ (package
+ (name "julia-git")
+ (version "1.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaVersionControl/Git.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0bznzg360cbvbzzpsdkin4dm2v980sb5pv58gy1bp3j9j8bj38h6"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-network-tests
+ (lambda _
+ (substitute* "test/runtests.jl"
+ (("testset.*Git.jl.*" all)
+ (string-append all " return\n"))))))))
+ (propagated-inputs
+ (list julia-git-jll))
+ (home-page "https://github.com/JuliaVersionControl/Git.jl")
+ (synopsis "Use command-line Git in your Julia packages")
+ (description "Git.jl allows you to use command-line Git in your Julia
+packages. You do not need to have Git installed on your computer, and neither
+do the users of your packages!")
+ (license license:expat)))
+
+(define-public julia-git-jll
+ (package
+ (name "julia-git-jll")
+ (version "2.36.1+2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaBinaryWrappers/Git_jll.jl")
+ (commit (string-append "Git-v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1n8k363q2mw5qfkagbbqpn4djx181qbn05l7brp3spspvf5aslgm"))))
+ (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
+ (("generate_wrapper_header.*")
+ (string-append
+ "generate_wrapper_header(\"Git\", \""
+ (assoc-ref inputs "git-minimal") "\")\n"))))
+ ;; There's a Julia file for each platform, override them all
+ (find-files "src/wrappers/" "\\.jl$")))))))
+ (inputs
+ (list git-minimal))
+ (propagated-inputs
+ (list julia-jllwrappers
+ julia-expat-jll
+ julia-openssl-jll
+ ;julia-libcurl-jll
+ julia-libiconv-jll
+ ;julia-pcre2-jll
+ julia-zlib-jll))
+ (home-page "https://github.com/JuliaBinaryWrappers/Git_jll.jl")
+ (synopsis "Git library wrappers")
+ (description "This package provides a wrapper for the git library.")
+ (license license:expat)))
+
+(define-public julia-glob
+ (package
+ (name "julia-glob")
+ (version "1.3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vtjnash/Glob.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "05yp7ba3y3pfibs0hy2sp61phb5b6x7aacsjc93i3lz6wmlpj0jx"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/vtjnash/Glob.jl")
+ (synopsis "Posix-compliant file name pattern matching")
+ (description "This implementation of Glob is based on the IEEE Std 1003.1,
+2004 Edition (Open Group Base Specifications Issue 6) for fnmatch and glob.")
+ (license license:expat)))
+
+(define-public julia-terminalloggers
+ (package
+ (name "julia-terminalloggers")
+ (version "0.1.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaLogging/TerminalLoggers.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01l9qsjljwa9pkpvf1pafmbrncjddwdw3737pf44y9q5hrp4hbr7"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ (list julia-leftchildrightsiblingtrees
+ julia-progresslogging))
+ (home-page "https://github.com/JuliaLogging/TerminalLoggers.jl")
+ (synopsis "Logging sinks and utilites for interactive terminals")
+ (description "TerminalLoggers provides a logger type @code{TerminalLogger}
+which can format your log messages in a richer way than the default
+@code{ConsoleLogger} which comes with the julia standard @code{Logging}
+library.")
+ (license license:expat)))
+
+(define-public julia-roots
+ (package
+ (name "julia-roots")
+ (version "2.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaMath/Roots.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17d62r8pib3cp73az00iz8nbnd5j0y3dl1mrmcssnj4ln8043056"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-expensive-tests
+ (lambda _
+ (substitute* "test/runtests.jl"
+ ((".*test_composable.*") "")))))))
+ (propagated-inputs
+ (list julia-commonsolve
+ julia-setfield))
+ (native-inputs
+ (list julia-benchmarktools
+ julia-forwarddiff
+ julia-json
+ julia-specialfunctions))
+ (home-page "http://juliamath.github.io/Roots.jl/")
+ (synopsis "Root finding functions for Julia")
+ (description "This package contains simple routines for finding roots, or
+zeros, of scalar functions of a single real variable using floating-point
+math.")
+ (license license:expat)))
+
+(define-public julia-commonsolve
+ (package
+ (name "julia-commonsolve")
+ (version "0.2.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/SciML/CommonSolve.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1w05fp02g5cmqzqp96hcpriwjpqx61sl481rj92gf4y4xpinmdf5"))))
+ (build-system julia-build-system)
+ (home-page "https://docs.sciml.ai/CommonSolve/stable")
+ (synopsis "Common solve function for scientific machine learning")
+ (description "This holds the common @code{solve}, @code{init},
+@code{step!}, and @code{solve!} commands. By using the same definition, solver
+libraries from other completely different ecosystems can extend the functions
+and thus not clash with SciML if both ecosystems export the @code{solve}
+command. The rules are that you must dispatch on one of your own types.")
+ (license license:expat)))
+
+(define-public julia-setfield
+ (package
+ (name "julia-setfield")
+ (version "1.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jw3126/Setfield.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0vdn9s639f120560599m4lhqkk0nsx7qa87fv2mixs1faaihsf6l"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:tests? #f)) ; Skip tests, not all dependencies packaged.
+ (propagated-inputs
+ (list julia-constructionbase
+ julia-macrotools
+ julia-staticarrayscore))
+ (home-page "https://github.com/jw3126/Setfield.jl")
+ (synopsis "Update deeply nested immutable structs")
+ (description "Update deeply nested immutable structs.")
+ (license license:expat)))
+
+(define-public julia-staticarrayscore
+ (package
+ (name "julia-staticarrayscore")
+ (version "1.4.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaArrays/StaticArraysCore.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0m573mxvf0y9h7y8rxrk35haphhqisplx159r77g30qvw7zwpgar"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaArrays/StaticArraysCore.jl")
+ (synopsis "Interface package for StaticArrays.jl")
+ (description
+ "This package provides an interface package for @code{StaticArrays.jl}.")
+ (license license:expat)))
+
+(define-public julia-progresslogging
+ (package
+ (name "julia-progresslogging")
+ (version "0.1.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaLogging/ProgressLogging.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ysixnl7wjdykaka892jrhsay2aivpch83h8dnfs43z2xynf9sqn"))))
+ (build-system julia-build-system)
+ (native-inputs
+ (list julia-offsetarrays))
+ (home-page "https://github.com/JuliaLogging/ProgressLogging.jl")
+ (synopsis "Define progress logs")
+ (description "ProgressLogging.jl is a package for defining progress logs.
+It can be used to report progress of a loop/loops with time-consuming body.")
+ (license license:expat)))
+
+(define-public julia-leftchildrightsiblingtrees
+ (package
+ (name "julia-leftchildrightsiblingtrees")
+ (version "0.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaCollections/LeftChildRightSiblingTrees.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rijr0yqmbzhlk668v4rqw5xmxxzqvgziasyqrd6z837376mfyy6"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ (list julia-abstracttrees))
+ (home-page "https://github.com/JuliaCollections/LeftChildRightSiblingTrees.jl")
+ (synopsis "Representation of a tree with arbitrary number of children/node")
+ (description "A left child, right sibling tree (frequently abbreviated as
+\"LCRS\") is a rooted tree data structure that allows a parent node to have
+multiple child nodes. Rather than maintain a list of children (which requires
+one array per node), instead it is represented as a binary tree, where the
+\"left\" branch is the first child, whose \"right\" branch points to its first
+sibling.")
+ (license license:expat)))
+
;; ready to upstream
(define-public julia-densityinterface
(package
@@ -363,7 +715,7 @@ densities and objects associated with a density in Julia.")
(define-public julia-plots
(package
(name "julia-plots")
- (version "1.16.6")
+ (version "1.35.6")
(source
(origin
(method git-fetch)
@@ -372,57 +724,610 @@ densities and objects associated with a density in Julia.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0ipv9408r4czsx1j01sv2f7ww52b329jc0v79npn4x2mf827nsik"))))
+ (base32 "005za8a8al822xr0cz4yi1rm23qj1lzy9iw93vvhwq76x3n8bfpy"))))
(build-system julia-build-system)
(arguments
`(#:tests? #f ; for now
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'adjust-tests
+ (lambda _
+ ;; Decrease the number of tests we're running.
+ (substitute* "test/runtests.jl"
+ ((".*VisualRegressionTests.*") "")
+ ((".*pgfplotsx.*") "")
+ ((".*plotlyjs.*") "")
+ ))))
))
(propagated-inputs
- `(
- ;("julia-contour" ,julia-contour)
- ("julia-ffmpeg" ,julia-ffmpeg)
- ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
- ("julia-gr" ,julia-gr)
- ("julia-geometrybasics" ,julia-geometrybasics)
- ("julia-json" ,julia-json)
- ;("julia-latexify" ,julia-latexify)
- ("julia-measures" ,julia-measures)
- ("julia-nanmath" ,julia-nanmath)
- ("julia-plotthemes" ,julia-plotthemes)
- ("julia-plotutils" ,julia-plotutils)
- ("julia-recipesbase" ,julia-recipesbase)
- ("julia-recipespipeline" ,julia-recipespipeline)
- ("julia-reexport" ,julia-reexport)
- ("julia-requires" ,julia-requires)
- ("julia-scratch" ,julia-scratch)
- ("julia-showoff" ,julia-showoff)
- ("julia-statsbase" ,julia-statsbase)
- ))
+ (list julia-contour
+ julia-ffmpeg
+ julia-fixedpointnumbers
+ julia-gr
+ julia-geometrybasics
+ julia-jlfzf
+ julia-json
+ ;julia-latexify
+ julia-measures
+ julia-nanmath
+ julia-plotthemes
+ julia-plotutils
+ julia-recipesbase
+ julia-recipespipeline
+ julia-reexport
+ julia-relocatablefolders
+ julia-requires
+ julia-scratch
+ julia-showoff
+ julia-snoopprecompile
+ julia-statsbase
+ julia-unicodefun
+ julia-unzip))
(native-inputs
- `(
- ;("julia-distributions" ,julia-distributions)
- ("julia-fileio" ,julia-fileio)
- ;("julia-gtk" ,julia-gtk)
- ;("julia-hdf5" ,julia-hdf5)
- ("julia-imagemagick" ,julia-imagemagick)
- ;("julia-images" ,julia-images)
- ("julia-offsetarrays" ,julia-offsetarrays)
- ;("julia-pgfplotsx" ,julia-pgfplotsx)
- ;("julia-plotlyjs" ,julia-plotlyjs)
- ;("julia-rdatasets" ,julia-rdatasets)
- ("julia-stablerngs" ,julia-stablerngs)
- ("julia-staticarrays" ,julia-staticarrays)
- ;("julia-statsplots" ,julia-statsplots)
- ("julia-testimages" ,julia-testimages)
- ;("julia-unicodeplots" ,julia-unicodeplots)
- ;("julia-visualregressiontests" ,julia-visualregressiontests)
- ))
+ (list julia-aqua
+ julia-colors
+ ;julia-conda
+ julia-distributions
+ julia-fileio
+ julia-filepathsbase
+ ;julia-gaston
+ julia-geometrybasics
+ ;julia-gtk
+ ;julia-hdf5
+ julia-imagemagick
+ ;julia-images
+ ;julia-inspectdr
+ julia-offsetarrays
+ ;julia-pgfplotsx
+ ;julia-plotlybase
+ ;julia-plotlyjs
+ ;julia-plotlykaleido
+ julia-pycall
+ julia-pyplot
+ ;julia-rdatasets
+ julia-sentinelarrays
+ julia-stablerngs
+ julia-staticarrays
+ ;julia-statsplots
+ julia-testimages
+ julia-unicodeplots
+ julia-unitful
+ ;julia-visualregressiontests
+ ))
(home-page "http://docs.juliaplots.org/")
(synopsis "Powerful convenience for Julia visualizations and data analysis")
(description "Plots is a plotting API and toolset.")
(license license:expat)))
+(define-public julia-contour
+ (package
+ (name "julia-contour")
+ (version "0.5.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaGeometry/Contour.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ai6lh5ap9qxhqm2k1pnkfbpm4b95d3v7izhyvrr9cxwbxfjv3vn"))))
+ (build-system julia-build-system)
+ (arguments `(#:tests? #f)) ;; FIX ME
+ (propagated-inputs
+ (list julia-staticarrays))
+ (native-inputs
+ (list julia-offsetarrays
+ julia-statsbase))
+ (home-page "https://github.com/JuliaGeometry/Contour.jl")
+ (synopsis "Calculating contour curves for 2D scalar fields in Julia")
+ (description "This package provides a generic implementation of the
+@url{https://en.wikipedia.org/wiki/Marching_squares, marching squares}
+algorithm for tracing contour curves on a scalar 2D field.")
+ (license license:expat)))
+
+(define-public julia-unicodeplots
+ (package
+ (name "julia-unicodeplots")
+ (version "2.12.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaPlots/UnicodePlots.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0plkczznx1297m1lviczkm4873yl29anr5csgyhh9vnvyf1606y2"))))
+ (build-system julia-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'adjust-tests
+ (lambda _
+ ;; It is unclear why these tests fail and why some
+ ;; have a suprise dependency on AstroIO (from FileIO)
+ (substitute* "test/runtests.jl"
+ ((".*tst_world_age.*") "")
+ ((".*tst_io.*") "")
+ ((".*tst_densityplot.*") ""))
+ (substitute* "test/tst_canvas.jl"
+ ((".*HeatmapCanvas, \"heatmap\".*") ""))
+ (substitute* "test/tst_histogram.jl"
+ (("testset.*keyword.*" all)
+ (string-append all " return;\n"))
+ (("testset.*vertical\".*" all)
+ (string-append all " return;\n")))
+ (substitute* "test/tst_barplot.jl"
+ (("testset.*maximum.*" all)
+ (string-append all " return;\n")))
+ (substitute* "test/tst_spy.jl"
+ (("testset.*parameters.*" all)
+ (string-append all " return;\n")))
+ (substitute* "test/tst_boxplot.jl"
+ (("testset.*default.*" all)
+ (string-append all " return;\n"))
+ (("testset.*scaling.*" all)
+ (string-append all " return;\n")))
+ (substitute* "test/tst_volume.jl"
+ (("testset.*cube.*" all)
+ (string-append all " return;\n"))))))))
+ (propagated-inputs
+ (list julia-colortypes
+ julia-contour
+ julia-crayons
+ julia-fileio
+ julia-freetypeabstraction
+ julia-lazymodules
+ julia-marchingcubes
+ julia-nanmath
+ julia-staticarrays
+ julia-statsbase
+ julia-unitful))
+ (native-inputs
+ (list julia-colortypes
+ julia-imagemagick
+ julia-referencetests
+ julia-stablerngs))
+ (home-page "https://github.com/JuliaPlots/UnicodePlots.jl")
+ (synopsis "Unicode-based scientific plotting for working in the terminal")
+ (description "Advanced Unicode plotting library designed for use in Julia's REPL.")
+ (license license:expat)))
+
+(define-public julia-lazymodules
+ (package
+ (name "julia-lazymodules")
+ (version "0.3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/johnnychen94/LazyModules.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11xz0aw5w338pka9jf3r7mfhgm98fnqzsky5ig9z7b996z0m7lpk"))))
+ (build-system julia-build-system)
+ (native-inputs
+ (list julia-colors
+ julia-offsetarrays))
+ (home-page "https://github.com/johnnychen94/LazyModules.jl")
+ (synopsis "Lazily load Julia modules")
+ (description "This package provides package developers an alternative
+option to delay package loading until used. If some dependency is not used,
+then users don't need to pay for its latency.")
+ (license license:expat)))
+
+(define-public julia-marchingcubes
+ (package
+ (name "julia-marchingcubes")
+ (version "0.1.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaGeometry/MarchingCubes.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14k47lz33j0fiashykf2a8ayiv482k5jkgw0iircw55mdkdrnxc3"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:tests? #f)) ; Maybe later
+ (propagated-inputs
+ (list julia-precompiletools
+ julia-staticarrays))
+ #;
+ (native-inputs
+ (list julia-benchmarktools
+ julia-geometrybasics
+ julia-meshes
+ julia-plyio))
+ (home-page "https://github.com/JuliaGeometry/MarchingCubes.jl")
+ (synopsis "Efficient Implementation of Marching Cubes' Cases with Topological Guarantees")
+ (description "Julia port of Efficient Implementation of Marching Cubes' Cases with Topological Guarantees.")
+ (license license:expat)))
+
+(define-public julia-snoopprecompile
+ (package
+ (name "julia-snoopprecompile")
+ (version "1.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/timholy/SnoopCompile.jl")
+ (commit "v2.10.0")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14nnqknswjzlk786x4r7xc7898nmfk7ijfchrc09i81qi2d0mmcn"))))
+ (build-system julia-build-system)
+ (arguments
+ (list
+ #:tests? #f ; Most tests fail in the build environment.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "SnoopPrecompile"))))))
+ (propagated-inputs
+ (list julia-preferences))
+ (home-page "https://timholy.github.io/SnoopCompile.jl/dev/")
+ (synopsis "Effectively precompile code needed by your package")
+ (description "SnoopPrecompile is a small dependency used to effectively
+precompile code needed by your package, particularly on Julia 1.8 and higher.")
+ (license license:expat)))
+
+(define-public julia-snoopcompile
+ (package
+ (name "julia-snoopcompile")
+ (version "1.7.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/timholy/SnoopCompile.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1xy0y5s7q980fl0kygvjbmn74i3sjpzbizsgvis70gd2fibz80h7"))))
+ (build-system julia-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'adjust-test-suite
+ (lambda _
+ ;; This module fails to load its dependencies in the 'check phase.
+ (substitute* "test/runtests.jl"
+ ((".*snoopi\\.jl.*") ""))
+ (substitute* "test/snoopi.jl"
+ (("testset \"snoopi\" begin")
+ "testset \"snoopi\" begin return")))))))
+ (propagated-inputs
+ (list julia-snoopcompileanalysis
+ julia-snoopcompilebot
+ julia-snoopcompilecore))
+ (native-inputs
+ (list
+ ;julia-jld
+ ;julia-matlang
+ ))
+ (home-page "https://timholy.github.io/SnoopCompile.jl/dev/")
+ (synopsis "Making packages work faster with more extensive precompilation")
+ (description "SnoopCompile observes the Julia compiler, causing it to
+record the functions and argument types it's compiling. From these lists of
+methods, you can generate lists of @code{precompile} directives that may reduce
+the latency between loading packages.")
+ (license license:expat)))
+
+(define-public julia-snoopcompileanalysis
+ (package/inherit julia-snoopcompile
+ (name "julia-snoopcompileanalysis")
+ (arguments
+ (list
+ #:tests? #f ; No test folder
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "SnoopCompileAnalysis"))))))
+ (propagated-inputs
+ (list julia-cthulhu
+ julia-orderedcollections))
+ (native-inputs '())
+ ))
+
+(define-public julia-snoopcompilebot
+ (package/inherit julia-snoopcompile
+ (name "julia-snoopcompilebot")
+ (arguments
+ (list
+ #:tests? #f ; Tests to be run in SnoopCompile.jl
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "SnoopCompileBot"))))))
+ (propagated-inputs
+ (list julia-filepathsbase
+ julia-snoopcompileanalysis
+ julia-snoopcompilecore
+ julia-yaml))
+ (native-inputs '())
+ ))
+
+(define-public julia-snoopcompilecore
+ (package/inherit julia-snoopcompile
+ (name "julia-snoopcompilecore")
+ (arguments
+ (list
+ #:tests? #f ; No test folder
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "SnoopCompileCore"))))))
+ (propagated-inputs '())
+ (native-inputs '())
+ ))
+
+(define-public julia-cthulhu
+ (package
+ (name "julia-cthulhu")
+ (version "1.6.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDebug/Cthulhu.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1ziax1378kvyzikm4cigg4mq44r085zczqa0mkcbw5g36gcma6qi"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:tests? #f)) ; Skip for now
+ (propagated-inputs
+ (list julia-codetracking
+ julia-foldingtrees))
+ (native-inputs
+ (list julia-staticarrays))
+ (home-page "https://github.com/JuliaDebug/Cthulhu.jl")
+ (synopsis "Slow descent into madness")
+ (description "Cthulhu can help you debug type inference issues by
+recursively showing the @code{code_typed} output until you find the exact point
+where inference gave up, messed up, or did something unexpected. Using the
+Cthulhu interface you can debug type inference problems faster.")
+ (license license:expat)))
+
+(define-public julia-codetracking
+ (package
+ (name "julia-codetracking")
+ (version "1.3.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/timholy/CodeTracking.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0j6mclc7y1vpib5chj3hkabz9zbmdl76jgcr7314f5kbrdqjybbi"))))
+ (build-system julia-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'adjust-test-suite
+ (lambda _
+ (substitute* "test/runtests.jl"
+ (("test pkgfiles\\(\"Color")
+ "test_skip pkgfiles\(\"Color")))))))
+ (home-page "https://github.com/timholy/CodeTracking.jl")
+ (synopsis "It's editing-time, do you know where your methods are?")
+ (description "CodeTracking can be thought of as an extension of Julia's
+InteractiveUtils library. It provides an interface for obtaining:
+@enumerate
+@item the strings and expressions of method definitions
+@item the method signatures at a specific file & line number
+@item location information for \"dynamic\" code that might have moved since it
+was first loaded
+@item a list of files that comprise a particular package.@end enumerate")
+ (license license:expat)))
+
+(define-public julia-foldingtrees
+ (package
+ (name "julia-foldingtrees")
+ (version "1.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaCollections/FoldingTrees.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1q3w44z1h9j22ykdwwgl8qdm9621m0qqwz4wd2rs2aj0921pdmm4"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ (list julia-abstracttrees))
+ (home-page "https://github.com/JuliaCollections/FoldingTrees.jl")
+ (synopsis "Dynamic tree structure with control over the accessibility of node children")
+ (description "FoldingTrees implements a dynamic tree structure in which
+some nodes may be \"folded,\" i.e., marked to avoid descent among that node's
+children. It also supports interactive text menus based on folding trees.")
+ (license license:expat)))
+
+(define-public julia-jlfzf
+ (package
+ (name "julia-jlfzf")
+ (version "0.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Moelf/JLFzf.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0fvcx80lzj0xc4imb9h0iybj8s0cazjc1wn9h8xncih9aln25is4"))))
+ (build-system julia-build-system)
+ (arguments
+ '(#:tests? #f)) ; no tests
+ (propagated-inputs
+ (list julia-fzf-jll
+ julia-pipe))
+ (home-page "https://github.com/Moelf/JLFzf.jl")
+ (synopsis "Julia bind to fzf fuzzy finder")
+ (description "Julia bind to fzf fuzzy finder.")
+ (license license:expat)))
+
+(define-public julia-pipe
+ (package
+ (name "julia-pipe")
+ (version "1.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/oxinabox/Pipe.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01anm76nfmcajcbr2piji0rknisf5wwhimfndwaadkqkcjv7k4xn"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/oxinabox/Pipe.jl")
+ (synopsis "Enhancement to Julia piping syntax")
+ (description "This package provides an enhancement to Julia piping syntax.")
+ (license license:expat)))
+
+(define-public julia-fzf-jll
+ (package
+ (name "julia-fzf-jll")
+ (version "0.35.1+0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/juliabinarywrappers/fzf_jll.jl")
+ (commit (string-append "fzf-v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0psl1lsvl6sza69g7qh8ha2ir89fibzid4ka3wzmjgh0r4yjfnw0"))))
+ (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
+ (("generate_wrapper_header.*")
+ (string-append
+ "generate_wrapper_header(\"fzf\", \""
+ (assoc-ref inputs "fzf") "\")\n"))))
+ ;; There's a Julia file for each platform, override them all
+ (find-files "src/wrappers/" "\\.jl$")))))))
+ (inputs
+ (list (@ (gnu packages terminals) fzf)))
+ (propagated-inputs
+ (list julia-jllwrappers))
+ (home-page "https://github.com/JuliaBinaryWrappers/fzf_jll.jl")
+ (synopsis "Fzf library wrappers")
+ (description "This package provides a wrapper for fzf.")
+ (license license:expat)))
+
+(define-public julia-unicodefun
+ (package
+ (name "julia-unicodefun")
+ (version "0.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/SimonDanisch/UnicodeFun.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11hch4zpi8qby8pcqfvxnx88y45lxan4ind9kj2d0pgw614zkpg0"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/SimonDanisch/UnicodeFun.jl")
+ (synopsis "Transform text into unicode symbols")
+ (description "This package offers a unicode transformation library.")
+ (license license:expat)))
+
+(define-public julia-unzip
+ (package
+ (name "julia-unzip")
+ (version "0.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bramtayl/Unzip.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0i4rkvyd8br024s0sgs3crpi6za2f51m42whkx0jd22wiwg675vb"))))
+ (build-system julia-build-system)
+ (native-inputs
+ (list julia-documenter))
+ (home-page "https://github.com/bramtayl/Unzip.jl")
+ (synopsis "")
+ (description "")
+ (license license:expat)))
+
+;; Versions after 0.3.11 need a newer version of julia-http
+(define-public julia-plutosliderserver
+ (package
+ (name "julia-plutosliderserver")
+ (version "0.3.11")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaPluto/PlutoSliderServer.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1aqc836glwqqs1pd9173sbjwjns3zv197xqdqlkp2xgrkjiw2yzg"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:tests? #f ; Tests require network access
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'adjust-source
+ (lambda _
+ (setenv "GITHUB_ACTIONS" "false")
+ ;; Rip out betterfilewatching, it depends on a rust package.
+ (substitute* "src/PlutoSliderServer.jl"
+ ((".*watch_folder.*") ""))
+ ;; Remove GitHubActions
+ (substitute* "src/PlutoSliderServer.jl"
+ ((".*GitHubActions.*") "")))))))
+ (propagated-inputs
+ (list julia-abstractplutodingetjes
+ ;julia-betterfilewatching ; should be disabled?
+ julia-configurations
+ julia-fromfile
+ julia-git
+ ;julia-githubactions ; can be disabled
+ julia-http
+ julia-json
+ julia-pluto
+ julia-terminalloggers))
+ (home-page "https://github.com/JuliaPluto/PlutoSliderServer.jl")
+ (synopsis "Web server to run parts of a Pluto.jl notebook")
+ (description "This package provides a web server to run just the
+@code{@@bind} parts of a @code{Pluto.jl} notebook.")
+ (license license:unlicense)))
+
;; TODO: unbundle javascript calls to cdn.jsdelivr.net
+;; The '-src' commit needs some nodejs packages to build the frontend.
(define-public julia-pluto
(package
(name "julia-pluto")
@@ -432,15 +1337,20 @@ densities and objects associated with a density in Julia.")
(method git-fetch)
(uri (git-reference
(url "https://github.com/fonsp/Pluto.jl")
- (commit (string-append "v" version "-src"))))
+ ;(commit (string-append "v" version "-src"))))
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0h9sz4mpf3a4k0f5fblbb6j07wdhrnarxajrn0wz6zsq6w30x6yj"))))
+ ;(base32 "0h9sz4mpf3a4k0f5fblbb6j07wdhrnarxajrn0wz6zsq6w30x6yj"))))
+ (base32 "1qml5id3fi4r6n7hrqvfjwdvp3zp8xfckir3mw7vwswmkc56jzpq"))))
(build-system julia-build-system)
(arguments
`(#:tests? #f ; Test suite tries to download the package registry.
- #:phases
- (modify-phases %standard-phases
+ ;#:phases
+ #;(modify-phases %standard-phases
+ #;(add-before 'check 'pre-check
+ (lambda _
+ (setenv "PLUTO_TEST_ONLY_COMPILETIMES" "true")))
(add-after 'link-depot 'dont-check-for-upgrades
(lambda _
(substitute* "frontend/components/welcome/Welcome.js"
@@ -561,6 +1471,245 @@ native to Julia. Use it with the @code{@@bind} macro in Pluto.")
(list julia-bufferedstreams
julia-json))))
+(define-public julia-http-1.0
+ (package
+ (inherit julia-http)
+ (name "julia-http")
+ (version "1.0.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaWeb/HTTP.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "15bqf0gv4qz3990cv1s2nj9mjqaka1pkhzymgwc19wxqvacwvwqr"))))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'install 'disable-network-tests
+ (lambda _
+ (substitute* "test/runtests.jl"
+ (("\"async.jl") "# \"async.jl")
+ (("\"client.jl") "# \"client.jl")
+ (("\"websockets") "# \"websockets")
+ (("\"server") "# \"server"))
+ (substitute* "test/multipart.jl"
+ (("@testset \"Setting of Content-Type.*" all)
+ (string-append all "return\n"))
+ (("@testset \"Deprecation of .*" all)
+ (string-append all "return\n")))
+ (substitute* "test/messages.jl"
+ (("@testset.*Read methods.*" all)
+ (string-append all "return\n"))
+ (("@testset.*Body - .*" all)
+ (string-append all "return\n"))
+ (("@testset.*Write to file.*" all)
+ (string-append all "return\n")))
+ (substitute* "test/cookies.jl"
+ (("@testset.*Set-Cookie casing.*" all)
+ (string-append all "return\n")))
+)))))
+ (propagated-inputs
+ (list julia-codeczlib
+ julia-inifile
+ julia-loggingextras
+ julia-mbedtls
+ julia-simplebufferstream
+ julia-uris))
+ ;; required for tests
+ (native-inputs
+ (list julia-bufferedstreams
+ julia-json))))
+
+;; TODO: Unbundle fonts, more?
+(define-public julia-makie
+ (package
+ (name "julia-makie")
+ (version "0.17.13")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/MakieOrg/Makie.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0s9rkfmshl3nz82zkgia6fxmfhz4v26ixam6ybqw8swlshdfijrd"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ (list ;julia-animations
+ ;julia-colorbrewer
+ julia-colorschemes
+ julia-colortypes
+ julia-colors
+ julia-contour
+ julia-distributions
+ julia-docstringextensions
+ julia-ffmpeg
+ julia-fileio
+ julia-fixedpointnumbers
+ julia-formatting
+ julia-freetype
+ julia-freetypeabstraction
+ julia-geometrybasics
+ ;julia-gridlayout
+ ;julia-imageio
+ julia-intervalsets
+ ;julia-isoband
+ ;julia-kerneldensity
+ julia-latexstrings
+ julia-makiecore
+ ;julia-match
+ ;julia-mathtexengine
+ julia-observables
+ julia-offsetarrays
+ ;julia-packing
+ julia-plotutils
+ ;julia-polygonops
+ julia-relocatablefolders
+ julia-showoff
+ ;julia-signeddistancefields
+ julia-statsbase
+ julia-statsfuns
+ julia-structarrays
+ julia-unicodefun))
+ (home-page "https://docs.makie.org/stable")
+ (synopsis "Interactive data visualizations and plotting in Julia")
+ (description "Makie is a data visualization ecosystem for the Julia
+programming language.")
+ (license license:expat)))
+
+(define-public julia-makiecore
+ (package/inherit julia-makie
+ (name "julia-makiecore")
+ (version "0.4.0") ; Same source, different version
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "MakieCore"))))))
+ (propagated-inputs
+ (list julia-observables))
+ (synopsis "Backend core for Makie")))
+
+(define-public julia-cairomakie
+ (package/inherit julia-makie
+ (name "julia-cairomakie")
+ (version "0.8.13") ; Same source, different version
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "CairoMakie"))))))
+ (propagated-inputs
+ (list ;julia-cairo
+ julia-colors
+ ;julia-fftw
+ julia-fileio
+ julia-freetype
+ julia-geometrybasics
+ julia-makie))
+ (synopsis "Cairo Backend for Makie")))
+
+(define-public julia-freetype
+ (package
+ (name "julia-freetype")
+ (version "4.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaGraphics/FreeType.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "08kf1x1c7gvllds1ryv6zwy9ai85p50a509ndlcjrkiw31i612m8"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ (list julia-cenum
+ julia-freetype2-jll))
+ (home-page "https://github.com/JuliaGraphics/FreeType.jl")
+ (synopsis "FreeType 2 bindings for Julia")
+ (description "This package provides FreeType bindings for Julia.")
+ (license license:zlib)))
+
+(define-public julia-freetypeabstraction
+ (package
+ (name "julia-freetypeabstraction")
+ (version "0.9.9")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaGraphics/FreeTypeAbstraction.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0zqpwysvxjqh5lmsz7lysgyid7xnis23rr0xzn3fwxlncka7dbyl"))
+ (snippet
+ #~(begin
+ (use-modules (guix build utils))
+ ;; Also find fonts in Guix environments.
+ (substitute* "src/findfonts.jl"
+ (("\"/usr/share/fonts\"," all)
+ (string-append all "\n "
+ "\"/run/current-system/profile/share/fonts\","
+ "\n "
+ "joinpath(get(ENV, \"GUIX_ENVIRONMENT\", homedir()),"
+ "\"share/fonts\"),"
+ "\n "
+ "joinpath(get(ENV, \"GUIX_PROFILE\", homedir()),"
+ "\"share/fonts\"),") ))))))
+ (build-system julia-build-system)
+ (arguments
+ (list
+ #:tests? #f ; Can't skip the one test as needed
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'skip-findfont-test
+ (lambda _
+ (substitute* "test/runtests.jl"
+ ;; Can't make this find font-dejavu
+ (("@test findfont\\(font") "@test_skip findfont(font")))))))
+ (propagated-inputs
+ (list julia-colorvectorspace
+ julia-colors
+ julia-freetype
+ julia-geometrybasics))
+ (home-page "https://github.com/JuliaGraphics/FreeTypeAbstraction.jl")
+ (synopsis "Julian abstraction layer over FreeType.jl")
+ (description
+ "This package provides an abstraction layer over the FreeType Julia module.")
+ (license license:expat)))
+
+;; ready to upstream
+(define-public julia-observables
+ (package
+ (name "julia-observables")
+ (version "0.5.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaGizmos/Observables.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1l0rk60nrwwgcifqs72x76z9dv1kq6rvcbhy63kp27yqfsx6c20s"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaGizmos/Observables.jl")
+ (synopsis "Observable ref")
+ (description "This package provides the @code{Observable}s type in Julia,
+which are like @code{Ref}s but you can listen to changes.")
+ (license license:expat)))
+
(define-public julia-simplebufferstream
(package
(name "julia-simplebufferstream")
@@ -1494,7 +2643,7 @@ that still support Julia versions older than 1.6.")
("julia-fileio" ,julia-fileio)
;("julia-imagefiltering" ,julia-imagefiltering)
("julia-imagemagick" ,julia-imagemagick)
- ;("julia-quartzimageio" ,julia-quartzimageio)
+ ;("julia-quartzimageio" ,julia-quartzimageio) ; for macOS
("julia-requires" ,julia-requires)))
;(native-inputs
; `(;("julia-gtk" ,julia-gtk)