about summary refs log tree commit diff
path: root/gn
diff options
context:
space:
mode:
authorEfraim Flashner2023-09-06 14:48:43 +0300
committerEfraim Flashner2023-09-19 12:59:33 +0300
commit382df9849ed64d6ef2ea6ecafbfb090ad49928eb (patch)
tree6c5d0ef5462d1decf14583e9d1ad5f4d226a321b /gn
parentea986e95f6b2f66268a53a34945d858130bff018 (diff)
downloadguix-bioinformatics-382df9849ed64d6ef2ea6ecafbfb090ad49928eb.tar.gz
update julia-visuals
Diffstat (limited to 'gn')
-rw-r--r--gn/packages/julia.scm676
1 files changed, 624 insertions, 52 deletions
diff --git a/gn/packages/julia.scm b/gn/packages/julia.scm
index 31cc29c..aa163bf 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))
@@ -35,7 +36,8 @@
                       (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
-                 (base32 "0lm9yhk0mq5cvvkcbsgcjc1y7fzhr8qz2nxn38cy1zdxd8vfknsx"))))
+                 (base32 "0lm9yhk0mq5cvvkcbsgcjc1y7fzhr8qz2nxn38cy1zdxd8vfknsx"))
+                (patches (search-patches "julia-visuals-remove-manifests.diff"))))
       (build-system julia-build-system)
       (arguments
        `(#:tests? #f    ; no test suite
@@ -59,8 +61,15 @@
                         "environment.yml"
                         "setup.py"
                         "runpluto.sh"
+                        "runsliderserver.sh"
                         "notebooks"
                         "Project.toml")))))
+           (add-after 'install 'skip-julia-cairomakie
+             (lambda* (#:key outputs #:allow-other-keys)
+               (with-directory-excursion
+                 (string-append (assoc-ref outputs "out") "/notebooks")
+                 (delete-file "bayes.jl")
+                 (delete-file "disease-testing.jl"))))
            (add-after 'install 'wrap-program
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (let ((out (assoc-ref outputs "out")))
@@ -69,7 +78,7 @@
                   `("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")
@@ -94,6 +103,29 @@
                              (dirname (search-input-file inputs "/bin/yes"))
                              (search-input-file inputs "/bin/julia"))))
                    (chmod (string-append out "/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 "/runsliderserver")
+                   (lambda ()
+                     (format #t "#!~a --no-auto-compile
+!#
+(setenv \"JULIA_LOAD_PATH\" \"~a\")
+(setenv \"PATH\" \"~a\")
+(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")
+                             out)))
+                   (chmod (string-append out "/runsliderserver") #o555))))
            (replace 'precompile
              (lambda _
                (invoke "julia" "-e" "\"import Pkg; Pkg.instantiate(); Pkg.status(); Pkg.precompile()\""))))))
@@ -104,14 +136,19 @@
           ,(@ (gn packages python) python-jupyter-server-proxy-1))))
 
       (inputs
-       (list julia-distributions
+       (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")
@@ -335,6 +372,282 @@ 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-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 +676,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 +685,258 @@ 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
        ))
     (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-distributions
+       julia-fileio
+       ;julia-gtk
+       ;julia-hdf5
+       julia-imagemagick
+       ;julia-images
+       julia-offsetarrays
+       ;julia-pgfplotsx
+       ;julia-plotlyjs
+       ;julia-rdatasets
+       julia-stablerngs
+       julia-staticarrays
+       ;julia-statsplots
+       julia-testimages
+       ;julia-unicodeplots
+       ;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-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-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 +946,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 +1080,59 @@ 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))))
+
 (define-public julia-simplebufferstream
   (package
     (name "julia-simplebufferstream")