build-system/julia: Enable Julia Pkg to find installed packages.

Julia's built-in package manager (Pkg) looks for packages in
JULIA_DEPOT_PATH/packages/PACKAGENAME/XXXX, where XXXX is a string
encoding package UUID and SHA1 of files.  The link-depot phase creates
a link at the correct location to allow Pkg to find packages that were
already installed by Guix.

* guix/build/julia-build-system.scm (link-depot): New phase.
(%package-path): Modified package path from packages/ to loadpath/.
(project.toml->uuid): New procedure, retrive package uuid from TOML file.
(precompile, check): Adjust to the change in paths.
(%standard-phases): Add link-depot phase.
(julia-build): Add julia-package-uuid keyword.
* guix/build-system/julia.scm (julia-build): Also use the
julia-package-uuid keyword.
* gnu/packages/julia-jll.scm (julia-bzip2-jll, julia-cairo-jll,
julia-compilersupportlibraries-jll, julia-expat-jll, julia-ffmpeg-jll,
julia-fontconfig-jll, julia-freetype2-jll, julia-fribidi-jll,
julia-gettext-jll, julia-glib-jll, julia-gr-jll, julia-gumbo-jll,
julia-imagemagick-jll, julia-jllwrappers-jll, julia-jpegturbo-jll,
julia-lame-jll, julia-libass-jll, julia-libfdk-aac-jll,
julia-libffi-jll, julia-libgcrypt-jll, julia-libglvnd-jll,
julia-libgpg-error-jll, juli-libiconv-jll, julia-libmount-jll,
julia-libpng-jll, julia-libsass-jll, julia-libtiff-jll,
julia-libuuid-jll, julia-libvorbis-jll, julia-lzo-jll,
julia-mbedtls-jll, julia-ogg-jll, julia-openspecfun-jll,
julia-openssl-jll, julia-opus-jll, julia-pcre-jll, julia-pixman-jll,
julia-qt5base-jll, julia-wayland-jll, julia-wayland-protocols-jll,
julia-x264-jll, julia-x265-jll, julia-xkbcommon-jll, julia-xml2-jll,
julia-xorg-libpthread-stubs-jll, julia-xorg-libx11-jll,
julia-xorg-libxau-jll, julia-xorg-libxcb-jll, julia-xorg-libxcursor-jll,
julia-xorg-libxdmcp-jll, julia-xorg-libxext-jll,
julia-xorg-libxfixes-jll, julia-xorg-libxi-jll,
julia-xorg-libxinerama-jll, julia-xorg-libxkbfile-jll,
julia-xorg-libxrandr-jll, julia-xorg-libxrender-jll,
julia-xorg-xcb-util-jll, julia-xorg-xcb-util-keysyms-jll,
julia-xorg-xcb-util-renderutil-jll, julia-xorg-xcb-util-wm-jll,
julia-xorg-xkbcomp-jll, julia-xorg-xkeyboard-config-jll,
julia-xorg-xtrans-jll, julia-xslt-jll, julia-zlib-jll, julia-zstd-jll)
[argument]: Adjust the order of the phases to the change in the
julia-build-system.
* gnu/packages/julia-xyz.scm (julia-bufferedstreams, julia-calculus,
julia-dataframes, julia-datavalues, julia-distances, julia-documenter,
julia-dualnumbers, julia-ellipsisnotation, julia-expronicon,
julia-fileio, julia-fixedpointnumbers, julia-functionwrappers,
julia-fuzzycompletions, julia-genericlinearalgebra, julia-genericschur,
julia-geometrybasics, julia-imagemagick, julia-infinity,
julia-matrixfactorizations, julia-media, julia-missings, julia-nnlib,
julia-optimtestproblems, julia-orderedcollections, julia-prettytables,
julia-pycall, julia-quadmath, julia-safetests, julia-stackviews)
[arguments]: Correct paths to reflect change of %package-path modify
order of phases as link-depot needs to run on an unmodified src
directory add package-name-uuid keyword argument to packages without
Project.toml file.
* gnu/packages/julia.scm (julia)[native-search-paths]: Correct paths to
reflect change of %package-path modify order of phases as link-depot
needs to run on an unmodified src directory.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
This commit is contained in:
Jean-Baptiste Volatier 2021-11-12 14:23:52 +00:00 committed by Efraim Flashner
parent e31d48d8db
commit 3af351a7de
No known key found for this signature in database
GPG Key ID: 41AAE7DCCA3D8351
5 changed files with 154 additions and 108 deletions

View File

@ -77,7 +77,7 @@
'(#:tests? #f ; No runtests.jl '(#:tests? #f ; No runtests.jl
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -117,7 +117,7 @@ compression program.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -163,7 +163,7 @@ compression program.")
`(#:tests? #f ; no runtests.jl `(#:tests? #f ; no runtests.jl
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -205,7 +205,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -243,7 +243,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -292,7 +292,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -335,7 +335,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; No runtests.jl '(#:tests? #f ; No runtests.jl
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -377,7 +377,7 @@ rendering library.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -413,7 +413,7 @@ rendering library.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -454,7 +454,7 @@ rendering library.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -497,7 +497,7 @@ rendering library.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -541,7 +541,7 @@ rendering library.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -590,7 +590,7 @@ rendering library.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((gumbo (string-append (assoc-ref inputs "gumbo-parser")))) (let ((gumbo (string-append (assoc-ref inputs "gumbo-parser"))))
(for-each (for-each
@ -630,7 +630,7 @@ rendering library.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -672,7 +672,7 @@ rendering library.")
'(#:tests? #f '(#:tests? #f
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'custom-override-path (add-after 'link-depot 'custom-override-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Make @generate_wrapper_header take an optional argument that ;; Make @generate_wrapper_header take an optional argument that
;; guix packagers can pass to override the default "override" ;; guix packagers can pass to override the default "override"
@ -718,7 +718,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -754,7 +754,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -790,7 +790,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -830,7 +830,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -866,7 +866,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -903,7 +903,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -942,7 +942,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -980,7 +980,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1018,7 +1018,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1056,7 +1056,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1095,7 +1095,7 @@ from util-linux.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1133,7 +1133,7 @@ from util-linux.")
`(#:tests? #f ; no runtests.jl `(#:tests? #f ; no runtests.jl
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1175,7 +1175,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1214,7 +1214,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1252,7 +1252,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1290,7 +1290,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1328,7 +1328,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; No runtests.jl '(#:tests? #f ; No runtests.jl
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1366,7 +1366,7 @@ wrappers.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1403,7 +1403,7 @@ wrappers.")
`(#:tests? #f ; no runtests.jl `(#:tests? #f ; no runtests.jl
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1446,7 +1446,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1482,7 +1482,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1518,7 +1518,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1556,7 +1556,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1594,7 +1594,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1645,7 +1645,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1684,7 +1684,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1721,7 +1721,7 @@ build tree Yggdrasil.")
`(#:tests? #f ; no runtests `(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((libx264 (assoc-ref inputs "libx264"))) (let ((libx264 (assoc-ref inputs "libx264")))
(map (map
@ -1762,7 +1762,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1798,7 +1798,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1838,7 +1838,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1878,7 +1878,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1915,7 +1915,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1953,7 +1953,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -1989,7 +1989,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2029,7 +2029,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2067,7 +2067,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2103,7 +2103,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2140,7 +2140,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2177,7 +2177,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2215,7 +2215,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2252,7 +2252,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2289,7 +2289,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2327,7 +2327,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2364,7 +2364,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2401,7 +2401,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2438,7 +2438,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2475,7 +2475,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2512,7 +2512,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2549,7 +2549,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2586,7 +2586,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2623,7 +2623,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2659,7 +2659,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2702,7 +2702,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)
@ -2740,7 +2740,7 @@ build tree Yggdrasil.")
'(#:tests? #f ; no runtests '(#:tests? #f ; no runtests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'override-binary-path (add-after 'link-depot 'override-binary-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(map (map
(lambda (wrapper) (lambda (wrapper)

View File

@ -410,7 +410,8 @@ structures.")
;; https://travis-ci.org/BioJulia/BufferedStreams.jl/jobs/491050182 ;; https://travis-ci.org/BioJulia/BufferedStreams.jl/jobs/491050182
(arguments (arguments
'(#:tests? #f '(#:tests? #f
#:julia-package-name "BufferedStreams")) #:julia-package-name "BufferedStreams"
#:julia-package-uuid "e1450e63-4bb3-523b-b2a4-4ffa8c0fd77d"))
(propagated-inputs `(("julia-compat" ,julia-compat))) (propagated-inputs `(("julia-compat" ,julia-compat)))
(home-page "https://github.com/BioJulia/BufferedStreams.jl") (home-page "https://github.com/BioJulia/BufferedStreams.jl")
(synopsis "Fast composable IO streams") (synopsis "Fast composable IO streams")
@ -778,12 +779,12 @@ way.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'fix-tests (add-after 'link-depot 'fix-tests
(lambda _ (lambda _
(substitute* "test/runtests.jl" (substitute* "test/runtests.jl"
(("option.toml") "test/option.toml")) (("option.toml") "test/option.toml"))
#t)) #t))
(add-after 'unpack 'dont-use-exproniconlite (add-after 'link-depot 'dont-use-exproniconlite
(lambda _ (lambda _
(substitute* '("Project.toml" (substitute* '("Project.toml"
"src/Configurations.jl" "src/Configurations.jl"
@ -919,7 +920,7 @@ dependency on it.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'skip-failing-test (add-after 'link-depot 'skip-failing-test
(lambda _ (lambda _
;; Tests with non-standard colors. ;; Tests with non-standard colors.
(substitute* "test/show.jl" (substitute* "test/show.jl"
@ -1022,7 +1023,7 @@ without having to take direct dependencies.")
`(#:tests? #f ; Tests need upgrading with newer Julia version. `(#:tests? #f ; Tests need upgrading with newer Julia version.
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'skip-known-failing-tests (add-after 'link-depot 'skip-known-failing-tests
(lambda _ (lambda _
;; See upstream report: ;; See upstream report:
;; https://github.com/queryverse/DataValues.jl/issues/83 ;; https://github.com/queryverse/DataValues.jl/issues/83
@ -1100,7 +1101,7 @@ dictionaries in Julia, for improved productivity and performance.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'skip-flakey-tests (add-after 'link-depot 'skip-flakey-tests
(lambda _ (lambda _
;; Some combination of these tests fail nondeterministically ;; Some combination of these tests fail nondeterministically
;; each of the times this package is built. ;; each of the times this package is built.
@ -1166,14 +1167,14 @@ valuable enough at this time.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-source (add-after 'link-depot 'patch-source
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/Deps.jl" (substitute* "src/Deps.jl"
(("pip install") (("pip install")
(string-append (assoc-ref inputs "python") (string-append (assoc-ref inputs "python")
"/bin/pip install"))) "/bin/pip install")))
#t)) #t))
(add-after 'unpack 'remove-javascript-downloads (add-after 'link-depot 'remove-javascript-downloads
(lambda _ (lambda _
(substitute* "src/Writers/HTMLWriter.jl" (substitute* "src/Writers/HTMLWriter.jl"
(("cdnjs.cloudflare.com") "example.com")) (("cdnjs.cloudflare.com") "example.com"))
@ -1352,7 +1353,7 @@ stressing the robustness of differentiation tools.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'adjust-test-suite (add-after 'link-depot 'adjust-test-suite
(lambda _ (lambda _
(substitute* "test/runtests.jl" (substitute* "test/runtests.jl"
;; Seems to not play nicely with SpecialFunctions ;; Seems to not play nicely with SpecialFunctions
@ -1386,7 +1387,7 @@ combinations of dual numbers with predefined Julia numeric types.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'adjust-test-suite (add-after 'link-depot 'adjust-test-suite
(lambda _ (lambda _
(substitute* "test/runtests.jl" (substitute* "test/runtests.jl"
;; Seems to not play nicely with Julia-1.6. ;; Seems to not play nicely with Julia-1.6.
@ -1438,7 +1439,7 @@ before (or after)\".")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'skip-network-tests (add-after 'link-depot 'skip-network-tests
(lambda _ (lambda _
(substitute* "test/runtests.jl" (substitute* "test/runtests.jl"
;; This test tries to access the Julia package registry. ;; This test tries to access the Julia package registry.
@ -1517,7 +1518,7 @@ need the ffmpeg binaries + executables, and don't want the overhead of
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'reset-gzip-timestamps) (delete 'reset-gzip-timestamps)
(add-after 'unpack 'skip-network-tests (add-after 'link-depot 'skip-network-tests
(lambda _ (lambda _
;; These tests try to download audio/video files. ;; These tests try to download audio/video files.
(substitute* "test/query.jl" (substitute* "test/query.jl"
@ -1677,7 +1678,7 @@ using finite difference.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'disable-failing-test (add-after 'link-depot 'disable-failing-test
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(substitute* "test/fixed.jl" (substitute* "test/fixed.jl"
;; A deprecation warning is not thrown ;; A deprecation warning is not thrown
@ -1764,7 +1765,7 @@ differentiation (AD).")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'adjust-tests (add-after 'link-depot 'adjust-tests
(lambda _ (lambda _
(substitute* "test/runtests.jl" (substitute* "test/runtests.jl"
(("testset \\\"Abstract.*" all) (("testset \\\"Abstract.*" all)
@ -1817,7 +1818,7 @@ update step.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'skip-failing-test (add-after 'link-depot 'skip-failing-test
(lambda _ (lambda _
(substitute* "test/runtests.jl" (substitute* "test/runtests.jl"
((".*RPLE.*") ""))))))) ((".*RPLE.*") "")))))))
@ -1844,7 +1845,7 @@ update step.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'adjust-test-suite (add-after 'link-depot 'adjust-test-suite
(lambda _ (lambda _
(substitute* "test/runtests.jl" (substitute* "test/runtests.jl"
((".*lapack.*") ""))))))) ((".*lapack.*") "")))))))
@ -1875,7 +1876,7 @@ algebra routines written in Julia (except for optimized BLAS).")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'adjust-test-suite (add-after 'link-depot 'adjust-test-suite
(lambda _ (lambda _
(substitute* "test/complex.jl" (substitute* "test/complex.jl"
;; expected Array{Int32,1}, got a value of type Array{Int64,1} ;; expected Array{Int32,1}, got a value of type Array{Int64,1}
@ -1912,13 +1913,13 @@ matrices the Schur form is often more useful.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'remove-earcut (add-after 'link-depot 'remove-earcut
(lambda _ (lambda _
(substitute* '("Project.toml" (substitute* '("Project.toml"
"src/GeometryBasics.jl") "src/GeometryBasics.jl")
((".*EarCut.*") "")) ((".*EarCut.*") ""))
#t)) #t))
(add-after 'unpack 'skip-incompatible-test (add-after 'link-depot 'skip-incompatible-test
(lambda _ (lambda _
(substitute* "test/runtests.jl" (substitute* "test/runtests.jl"
(("@testset.*MetaT and heterogeneous data.*" all) (("@testset.*MetaT and heterogeneous data.*" all)
@ -2268,7 +2269,7 @@ be downscaled to fit into the size of your active terminal session.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'skip-failing-test (add-after 'link-depot 'skip-failing-test
(lambda _ (lambda _
;; These tests try to download from the imagemagick.org ;; These tests try to download from the imagemagick.org
(substitute* "test/runtests.jl" (substitute* "test/runtests.jl"
@ -2465,7 +2466,7 @@ indexed images, sometimes called \"colormap images\" or \"paletted images.\"")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'remove-timezones.jl (add-after 'link-depot 'remove-timezones.jl
(lambda _ (lambda _
(substitute* "test/runtests.jl" (substitute* "test/runtests.jl"
(("using TimeZones.*") "") (("using TimeZones.*") "")
@ -2864,7 +2865,7 @@ comes from the fact that @code{M == map(f, A)}.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'skip-failing-test (add-after 'link-depot 'skip-failing-test
(lambda _ (lambda _
;; Tests with math functions are hard. ;; Tests with math functions are hard.
(substitute* "test/test_ul.jl" (substitute* "test/test_ul.jl"
@ -2981,7 +2982,8 @@ resolving them into absolute units.")
(build-system julia-build-system) (build-system julia-build-system)
;; Package without Project.toml ;; Package without Project.toml
(arguments (arguments
'(#:julia-package-name "Media")) '(#:julia-package-name "Media"
#:julia-package-uuid "e89f7d12-3494-54d1-8411-f7d8b9ae1f27"))
(propagated-inputs (propagated-inputs
`(("julia-macrotools" ,julia-macrotools))) `(("julia-macrotools" ,julia-macrotools)))
(home-page "https://github.com/JunoLab/Media.jl") (home-page "https://github.com/JunoLab/Media.jl")
@ -3202,7 +3204,7 @@ interface to interact with these types.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'skip-cuda-tests (add-after 'link-depot 'skip-cuda-tests
(lambda _ (lambda _
(substitute* "test/runtests.jl" (substitute* "test/runtests.jl"
(("using CUDA") "") (("using CUDA") "")
@ -3238,7 +3240,8 @@ doesn't provide any other \"high-level\" functionality like layers or AD.")
(base32 "10h47x5ws42pkqjccimaz0yxfvz41w0yazq6inamfk4lg5g2g3d9")))) (base32 "10h47x5ws42pkqjccimaz0yxfvz41w0yazq6inamfk4lg5g2g3d9"))))
(build-system julia-build-system) (build-system julia-build-system)
(arguments (arguments
`(#:julia-package-name "OptimTestProblems")) `(#:julia-package-name "OptimTestProblems"
#:julia-package-uuid "cec144fc-5a64-5bc6-99fb-dde8f63e154c"))
(home-page "https://github.com/JuliaNLSolvers/OptimTestProblems.jl") (home-page "https://github.com/JuliaNLSolvers/OptimTestProblems.jl")
(synopsis "Collection of optimization test problems") (synopsis "Collection of optimization test problems")
(description "The purpose of this package is to provide test problems for (description "The purpose of this package is to provide test problems for
@ -3528,7 +3531,7 @@ everything from run time algorithm choice to code generation at compile time.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'skip-color-tests (add-after 'link-depot 'skip-color-tests
(lambda _ (lambda _
(substitute* "test/text_backend.jl" (substitute* "test/text_backend.jl"
((".*colors\\.jl.*") "")) ((".*colors\\.jl.*") ""))
@ -3567,7 +3570,7 @@ human-readable format.")
((guix build python-build-system) #:prefix python:)) ((guix build python-build-system) #:prefix python:))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'remove-conda (add-after 'link-depot 'remove-conda
(lambda _ (lambda _
(substitute* "Project.toml" (substitute* "Project.toml"
((".*Conda.*") "")) ((".*Conda.*") ""))
@ -3577,7 +3580,7 @@ human-readable format.")
(substitute* "deps/depsutils.jl" (substitute* "deps/depsutils.jl"
(("Conda.PYTHONDIR") "\"/\"")) (("Conda.PYTHONDIR") "\"/\""))
#t)) #t))
(add-after 'unpack 'set-python (add-after 'link-depot 'set-python
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((python (assoc-ref inputs "python"))) (let ((python (assoc-ref inputs "python")))
(setenv "PYCALL_JL_RUNTIME_PYTHON" (setenv "PYCALL_JL_RUNTIME_PYTHON"
@ -3690,7 +3693,7 @@ arbitrary normed vector spaces (e.g. matrix-valued integrands).")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'hardcode-libmath-location (add-after 'link-depot 'hardcode-libmath-location
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((gcclib (assoc-ref inputs "gcc:lib"))) (let ((gcclib (assoc-ref inputs "gcc:lib")))
(substitute* "src/Quadmath.jl" (substitute* "src/Quadmath.jl"
@ -4082,7 +4085,8 @@ through matrix-vector multiplication.")
(base32 "1fb1dfdmiw2ggx60hf70954xlps0r48fcb3k3dvxynlz7ylphp96")))) (base32 "1fb1dfdmiw2ggx60hf70954xlps0r48fcb3k3dvxynlz7ylphp96"))))
(build-system julia-build-system) (build-system julia-build-system)
(arguments (arguments
`(#:julia-package-name "SafeTestsets")) `(#:julia-package-name "SafeTestsets"
#:julia-package-uuid "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"))
(native-inputs (native-inputs
`(("julia-staticarrays" ,julia-staticarrays))) `(("julia-staticarrays" ,julia-staticarrays)))
(home-page "https://github.com/YingboMa/SafeTestsets.jl") (home-page "https://github.com/YingboMa/SafeTestsets.jl")
@ -4308,7 +4312,7 @@ some performance improvements).")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'skip-doctest (add-after 'link-depot 'skip-doctest
(lambda _ (lambda _
(substitute* "test/runtests.jl" (substitute* "test/runtests.jl"
((".*doctest.*") "")) ((".*doctest.*") ""))
@ -4811,6 +4815,7 @@ types, modules, and dictionaries.")
(build-system julia-build-system) (build-system julia-build-system)
(arguments (arguments
'(#:julia-package-name "URIs" ;required to run tests '(#:julia-package-name "URIs" ;required to run tests
#:julia-package-uuid "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4"
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'check 'change-dir (add-before 'check 'change-dir
@ -4818,7 +4823,7 @@ types, modules, and dictionaries.")
(lambda* (#:key source outputs #:allow-other-keys) (lambda* (#:key source outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(chdir (chdir
(string-append out "/share/julia/packages/URIs/test"))) (string-append out "/share/julia/loadpath/URIs/test")))
#t))))) #t)))))
;; required for tests ;; required for tests
(inputs `(("julia-json" ,julia-json))) (inputs `(("julia-json" ,julia-json)))

View File

@ -673,7 +673,7 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.")
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
(variable "JULIA_LOAD_PATH") (variable "JULIA_LOAD_PATH")
(files (list "share/julia/packages/"))) (files (list "share/julia/loadpath/")))
(search-path-specification (search-path-specification
(variable "JULIA_DEPOT_PATH") (variable "JULIA_DEPOT_PATH")
(files (list "share/julia/"))))) (files (list "share/julia/")))))

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2019 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -83,6 +84,7 @@
(system (%current-system)) (system (%current-system))
(guile #f) (guile #f)
(julia-package-name #f) (julia-package-name #f)
(julia-package-uuid #f)
(imported-modules %julia-build-system-modules) (imported-modules %julia-build-system-modules)
(modules '((guix build julia-build-system) (modules '((guix build julia-build-system)
(guix build utils)))) (guix build utils))))
@ -105,7 +107,8 @@
#:search-paths ',(map search-path-specification->sexp #:search-paths ',(map search-path-specification->sexp
search-paths) search-paths)
#:inputs %build-inputs #:inputs %build-inputs
#:julia-package-name ,julia-package-name))) #:julia-package-name ,julia-package-name
#:julia-package-uuid ,julia-package-uuid)))
(define guile-for-build (define guile-for-build
(match guile (match guile

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019, 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2019, 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -20,9 +21,11 @@
(define-module (guix build julia-build-system) (define-module (guix build julia-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:) #:use-module ((guix build gnu-build-system) #:prefix gnu:)
#:use-module (guix build utils) #:use-module (guix build utils)
#:use-module (rnrs io ports)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 regex) #:use-module (ice-9 regex)
#:use-module (ice-9 rdelim) #:use-module (ice-9 rdelim)
#:use-module (ice-9 popen)
#:export (%standard-phases #:export (%standard-phases
julia-create-package-toml julia-create-package-toml
julia-build)) julia-build))
@ -37,7 +40,7 @@
(invoke "julia" "-e" code)) (invoke "julia" "-e" code))
;; subpath where we store the package content ;; subpath where we store the package content
(define %package-path "/share/julia/packages/") (define %package-path "/share/julia/loadpath/")
(define (project.toml->name file) (define (project.toml->name file)
"Look for Julia package name in the TOML file FILE (usually named "Look for Julia package name in the TOML file FILE (usually named
@ -51,6 +54,18 @@ Project.toml)."
(if m (match:substring m 1) (if m (match:substring m 1)
(loop (read-line in 'concat))))))))) (loop (read-line in 'concat)))))))))
(define (project.toml->uuid file)
"Look for Julia package uuid in the TOML file FILE (usually named
Project.toml)."
(call-with-input-file file
(lambda (in)
(let loop ((line (read-line in 'concat)))
(if (eof-object? line)
#f
(let ((m (string-match "uuid\\s*=\\s*\"(.*)\"" line)))
(if m (match:substring m 1)
(loop (read-line in 'concat)))))))))
(define* (install #:key source inputs outputs julia-package-name (define* (install #:key source inputs outputs julia-package-name
#:allow-other-keys) #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -73,7 +88,7 @@ Project.toml)."
(setenv "JULIA_DEPOT_PATH" builddir) (setenv "JULIA_DEPOT_PATH" builddir)
;; Add new package dir to the load path. ;; Add new package dir to the load path.
(setenv "JULIA_LOAD_PATH" (setenv "JULIA_LOAD_PATH"
(string-append builddir "packages/" ":" (string-append builddir "loadpath/" ":"
(or (getenv "JULIA_LOAD_PATH") (or (getenv "JULIA_LOAD_PATH")
""))) "")))
;; Actual precompilation: ;; Actual precompilation:
@ -97,15 +112,36 @@ Project.toml)."
(setenv "SOURCE_DATE_EPOCH" "1") (setenv "SOURCE_DATE_EPOCH" "1")
(setenv "JULIA_DEPOT_PATH" builddir) (setenv "JULIA_DEPOT_PATH" builddir)
(setenv "JULIA_LOAD_PATH" (setenv "JULIA_LOAD_PATH"
(string-append builddir "packages/" ":" (string-append builddir "loadpath/" ":"
(or (getenv "JULIA_LOAD_PATH") (or (getenv "JULIA_LOAD_PATH")
""))) "")))
(setenv "HOME" "/tmp") (setenv "HOME" "/tmp")
(invoke "julia" "--depwarn=yes" (invoke "julia" "--depwarn=yes"
(string-append builddir "packages/" (string-append builddir "loadpath/"
package "/test/runtests.jl")))) package "/test/runtests.jl"))))
#t) #t)
(define* (link-depot #:key source inputs outputs julia-package-name julia-package-uuid
#:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(package-name (or
julia-package-name
(project.toml->name "Project.toml")))
(package-dir (string-append out %package-path package-name))
(uuid (or julia-package-uuid (project.toml->uuid "Project.toml")))
(pipe (open-pipe* OPEN_READ "julia" "-e"
(format #f "using Pkg;
println(Base.version_slug(Base.UUID(\"~a\"),
Base.SHA1(Pkg.GitTools.tree_hash(\".\"))))" uuid)))
(slug (string-trim-right (get-string-all pipe))))
;; When installing a package, julia looks first at in the JULIA_DEPOT_PATH
;; for a path like packages/PACKAGE/XXXX
;; Where XXXX is a slug encoding the package UUID and SHA1 of the files
;; Here we create a link with the correct path to enable julia to find the package
(mkdir-p (string-append out "/share/julia/packages/" package-name))
(symlink package-dir (string-append out "/share/julia/packages/" package-name "/" slug)))
#t)
(define (julia-create-package-toml outputs source (define (julia-create-package-toml outputs source
name uuid version name uuid version
deps) deps)
@ -138,6 +174,7 @@ version = \"" version "\"
(delete 'check) ; tests must be run after installation (delete 'check) ; tests must be run after installation
(replace 'install install) (replace 'install install)
(add-after 'install 'precompile precompile) (add-after 'install 'precompile precompile)
(add-after 'unpack 'link-depot link-depot)
(add-after 'install 'check check) (add-after 'install 'check check)
;; TODO: In the future we could add a "system-image-generation" phase ;; TODO: In the future we could add a "system-image-generation" phase
;; where we use PackageCompiler.jl to speed up package loading times ;; where we use PackageCompiler.jl to speed up package loading times
@ -146,11 +183,12 @@ version = \"" version "\"
(delete 'patch-usr-bin-file) (delete 'patch-usr-bin-file)
(delete 'build))) (delete 'build)))
(define* (julia-build #:key inputs julia-package-name (define* (julia-build #:key inputs julia-package-name julia-package-uuid
(phases %standard-phases) (phases %standard-phases)
#:allow-other-keys #:rest args) #:allow-other-keys #:rest args)
"Build the given Julia package, applying all of PHASES in order." "Build the given Julia package, applying all of PHASES in order."
(apply gnu:gnu-build (apply gnu:gnu-build
#:inputs inputs #:phases phases #:inputs inputs #:phases phases
#:julia-package-name julia-package-name #:julia-package-name julia-package-name
#:julia-package-uuid julia-package-uuid
args)) args))