Merge branch 'master' into core-updates-frozen

This commit is contained in:
Ludovic Courtès 2021-09-07 11:04:44 +02:00
commit d9dfbf886d
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
258 changed files with 218381 additions and 180777 deletions

View file

@ -80,6 +80,7 @@
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages virtualization)
#:use-module (gnu packages web)
#:use-module (gnu packages web-browsers)
@ -749,7 +750,7 @@ let () = String.split_on_char ':' (Sys.getenv \"OCAMLPATH\")
(define-public ocaml-opam-file-format
(package
(name "ocaml-opam-file-format")
(version "2.0.0")
(version "2.1.3")
(source (origin
(method git-fetch)
(uri (git-reference
@ -758,7 +759,7 @@ let () = String.split_on_char ':' (Sys.getenv \"OCAMLPATH\")
(file-name (git-file-name name version))
(sha256
(base32
"0fqb99asnair0043hhc8r158d6krv5nzvymd0xwycr5y72yrp0hv"))))
"1fxhppdmrysr2nb5z3c448h17np48f3ga9jih33acj78r4rdblcs"))))
(build-system ocaml-build-system)
(arguments
`(#:tests? #f; No tests
@ -777,7 +778,7 @@ the opam file format.")
(define-public opam
(package
(name "opam")
(version "2.0.8")
(version "2.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -786,77 +787,99 @@ the opam file format.")
(file-name (git-file-name name version))
(sha256
(base32
"1z0ls6xxa4ws5xw0am5gxmh5apnmyhgkcphrncp53w34j8sfydsj"))))
(build-system ocaml-build-system)
"12l7l4pbzy71k1yc7ym5aczajszvc9bqkdnfg8xhqc8ch8j1h1lj"))))
(build-system dune-build-system)
(arguments
`(#:configure-flags
(list (string-append "SHELL="
(assoc-ref %build-inputs "bash")
"/bin/sh"))
`(#:test-target "."
#:phases
(modify-phases %standard-phases
(add-before 'build 'pre-build
(lambda* (#:key inputs make-flags #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash"))
(bwrap (search-input-file inputs "/bin/bwrap")))
(substitute* "src/core/opamSystem.ml"
(("\"/bin/sh\"")
(string-append "\"" bash "/bin/sh\""))
(("getconf")
(which "getconf")))
;; Use bwrap from the store directly.
(substitute* "src/state/shellscripts/bwrap.sh"
(("-v bwrap") (string-append "-v " bwrap))
(("exec bwrap") (string-append "exec " bwrap))
;; Mount /gnu and /run/current-system in the
;; isolated environment when building with opam.
;; This is necessary for packages to find external
;; dependencies, such as a C compiler, make, etc...
(("^add_sys_mounts /usr")
(string-append "add_sys_mounts "
(%store-directory)
" /run/current-system /usr")))
(substitute* "src/client/opamInitDefaults.ml"
(("\"bwrap\"") (string-append "\"" bwrap "\""))))))
(add-before 'check 'prepare-checks
(lambda* (#:key inputs #:allow-other-keys)
;; Opam tests need to run an isolated environment from a writable
;; home directory.
(mkdir-p "test-home")
(setenv "HOME" (string-append (getcwd) "/test-home"))
;; For some reason, 'ocp-build' needs $TERM to be set.
#:make-flags
(list "TERM=screen"
(string-append "SHELL="
(assoc-ref %build-inputs "bash")
"/bin/sh"))
#:test-target "tests"
#:phases (modify-phases %standard-phases
(add-before 'build 'pre-build
(lambda* (#:key inputs make-flags #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash"))
(bwrap (search-input-file inputs "/bin/bwrap")))
(substitute* "src/core/opamSystem.ml"
(("\"/bin/sh\"")
(string-append "\"" bash "/bin/sh\""))
(("getconf")
(which "getconf")))
;; Use bwrap from the store directly.
(substitute* "src/state/shellscripts/bwrap.sh"
(("-v bwrap") (string-append "-v " bwrap))
(("exec bwrap") (string-append "exec " bwrap))
;; Mount /gnu and /run/current-system in the
;; isolated environment when building with opam.
;; This is necessary for packages to find external
;; dependencies, such as a C compiler, make, etc...
(("^add_sys_mounts /usr")
"add_sys_mounts /gnu /run/current-system /usr"))
(substitute* "src/client/opamInitDefaults.ml"
(("\"bwrap\"") (string-append "\"" bwrap "\"")))
;; Generating the documentation needs write access
(for-each
(lambda (f) (chmod f #o644))
(find-files "doc" "."))
#t)))
(add-before 'check 'pre-check
(lambda _
;; The "repo" test attempts to open some of these files O_WRONLY
;; and fails with a bogus "OpamSystem.File_not_found" otherwise.
(for-each
(lambda (f) (chmod f #o644))
(find-files "tests/packages" "\\.opam$"))
(substitute* "tests/Makefile"
(("/usr/bin/printf")
(which "printf"))
;; By default tests run twice: once with a "local" repository
;; and once with a git repository: disable the git tests to
;; avoid the dependency.
(("all: local git")
"all: local"))
#t)))))
;; Opam tests require data from opam-repository. Instead of
;; downloading them with wget from the guix environment, copy the
;; content to the expected directory.
(substitute* "tests/reftests/dune.inc"
(("tar -C.*opam-archive-([0-9a-f]*)[^)]*" _ commit)
(string-append "rmdir %{targets}) (run cp -r "
(assoc-ref inputs (string-append "opam-repo-" commit))
"/ %{targets}) (run chmod +w -R %{targets}"))
(("wget[^)]*") "touch %{targets}")
;; Disable a failing test because of different line wrapping
(("diff cli-versioning.test cli-versioning.out") "run true")
;; Disable a failing test because it tries to clone a git
;; repository from inside bwrap
(("diff upgrade-format.test upgrade-format.out") "run true"))
(substitute* "tests/reftests/dune"
;; Because of our changes to the previous file, we cannot check
;; it can be regenerated
(("diff dune.inc dune.inc.gen") "run true"))
;; Ensure we can run the generated build.sh (no /bin/sh)
(substitute* '("tests/reftests/legacy-local.test"
"tests/reftests/legacy-git.test")
(("#! ?/bin/sh")
(string-append "#!"
(search-input-file inputs "/bin/sh"))))
(substitute* "tests/reftests/testing-env"
(("OPAMSTRICT=1")
(string-append "OPAMSTRICT=1\nLIBRARY_PATH="
(assoc-ref inputs "libc") "/lib"))))))))
(native-inputs
`(("dune" ,dune)
("ocaml-cppo" ,ocaml-cppo)
(let ((opam-repo (lambda (commit hash)
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ocaml/opam-repository")
(commit commit)))
(file-name (git-file-name "opam-repo" commit))
(sha256 (base32 hash))))))
`(("dune" ,dune)
("ocaml-cppo" ,ocaml-cppo)
;; For tests.
("openssl" ,openssl)
("python" ,python-wrapper)
("rsync" ,rsync)
("unzip" ,unzip)
("which" ,which)))
;; For tests.
("git" ,git-minimal)
("openssl" ,openssl)
("python" ,python-wrapper)
("rsync" ,rsync)
("unzip" ,unzip)
("which" ,which)
;; Data for tests
("opam-repo-009e00fa" ,(opam-repo "009e00fa86300d11c311309a2544e5c6c3eb8de2"
"1wwy0rwrsjf4q10j1rh1dazk32fbzhzy6f7zl6qmndidx9b1bq7w"))
("opam-repo-ad4dd344" ,(opam-repo "ad4dd344fe5cd1cab49ced49d6758a9844549fb4"
"1a1qj47kj8xjdnc4zc50ijrix1kym1n7k20n3viki80a7518baw8"))
("opam-repo-c1d23f0e" ,(opam-repo "c1d23f0e17ec83a036ebfbad1c78311b898a2ca0"
"0j9abisx3ifzm66ci3p45mngmz4f0fx7yd9jjxrz3f8w5jffc9ii"))
("opam-repo-f372039d" ,(opam-repo "f372039db86a970ef3e662adbfe0d4f5cd980701"
"0ld7fcry6ss6fmrpswvr6bikgx299w97h0gwrjjh7kd7rydsjdws")))))
(inputs
`(("ocaml" ,ocaml)
("ncurses" ,ncurses)
@ -1604,7 +1627,7 @@ full_split, cut, rcut, etc..")
(define dune-bootstrap
(package
(name "dune")
(version "2.8.5")
(version "2.9.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1613,7 +1636,7 @@ full_split, cut, rcut, etc..")
(file-name (git-file-name name version))
(sha256
(base32
"0a1jj6njzsfjgklsirs6a79079wg4jhy6n888vg3dgp44awwq5jn"))))
"01np4jy0f3czkpzkl38k9b4lsh41qk52ldaqxl98mgigyzhx4w0b"))))
(build-system ocaml-build-system)
(arguments
`(#:tests? #f; require odoc
@ -2853,8 +2876,7 @@ without a complete in-memory representation of the data.")
"1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3"))))
(build-system dune-build-system)
(arguments
`(#:test-target "tests"
#:build-flags (list "--profile=release")))
`(#:test-target "tests"))
(propagated-inputs
`(("ocaml-cmdliner" ,ocaml-cmdliner)))
(home-page "https://www.typerex.org/ocp-indent.html")
@ -3272,8 +3294,7 @@ build system and allows external tools to analyse your project easily.")
"1smcc0l6fh2n0y6bp96c69j5nw755jja99w0b206wx3yb2m4w2hs"))))
(build-system dune-build-system)
(arguments
`(#:tests? #f
#:build-flags (list "--profile" "release")))
`(#:tests? #f))
(native-inputs
`(("ocamlbuild" ,ocamlbuild)))
(home-page "https://github.com/mjambon/cppo")
@ -3341,8 +3362,7 @@ standard iterator type starting from 4.07.")
(base32 "07ycb103mr4mrkxfd63cwlsn023xvcjp0ra0k7n2gwrg0mwxmfss"))))
(build-system dune-build-system)
(arguments
`(#:tests? #f
#:build-flags (list "--profile" "release")))
`(#:tests? #f))
(propagated-inputs
`(("ocaml-seq" ,ocaml-seq)))
(native-inputs
@ -3820,9 +3840,8 @@ the plugins facilitate extensibility, and the frontends serve as entry points.")
"0chn7ldqb3wyf95yhmsxxq65cif56smgz1mhhc7m0dpwmyq1k97h"))))
(build-system dune-build-system)
(arguments
`(#:build-flags (list "--profile" "release")
#:test-target "camomile-test"
#:tests? #f; Tests fail, see https://github.com/yoriyuki/Camomile/issues/82
`(#:test-target "camomile-test"
#:tests? #f ; Tests fail, see https://github.com/yoriyuki/Camomile/issues/82
#:phases
(modify-phases %standard-phases
(add-before 'build 'fix-usr-share
@ -3913,8 +3932,7 @@ connect an engine to your inputs and rendering functions to get an editor.")
(base32 "0zcjy6fvf0d3i2ssz96asl889n3r6bplyzk7xvb2s3dkxbgcisyy"))))
(build-system dune-build-system)
(arguments
`(#:build-flags (list "--profile" "release")
#:tests? #f
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
@ -4920,16 +4938,6 @@ provided by companion libraries such as
(sha256
(base32
"0j6xb4265jr41vw4fjzak6yr8s30qrnzapnc6rl1dxy8bjai0nir"))))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'build
;; make warnings non fatal (jbuilder behaviour)
(lambda _
(invoke "dune" "build" "@install" "--profile=release"))))
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(properties '()))))
(define-public ocaml-compiler-libs
@ -5037,7 +5045,7 @@ as part of the same ocaml-migrate-parsetree driver.")
(define-public ocaml-ppxlib
(package
(name "ocaml-ppxlib")
(version "0.22.1")
(version "0.23.0")
(home-page "https://github.com/ocaml-ppx/ppxlib")
(source
(origin
@ -5048,7 +5056,7 @@ as part of the same ocaml-migrate-parsetree driver.")
(file-name (git-file-name name version))
(sha256
(base32
"0cpfg634if1py1b2rljk3cagq9gj68dl2gk1kdg76f9rapvl2i4g"))))
"0jg5v4pssbl66hn5davpin1i57a0r3r54l96vpz5y99xk5w70xi1"))))
(build-system dune-build-system)
(propagated-inputs
`(("ocaml-base" ,ocaml-base)
@ -5328,6 +5336,10 @@ definitions.")
(uri (git-reference
(url "https://github.com/janestreet/ppx_variants_conv")
(commit (string-append "v" version))))
(patches
(search-patches
;; Fix build when building with ocaml-ppxlib@0.23.0.
"ocaml-ppx-variants-ppxlib-api-change.patch"))
(file-name (git-file-name name version))
(sha256
(base32
@ -5774,7 +5786,7 @@ else expression.")
(define-public ocaml-ppx-optcomp
(package
(name "ocaml-ppx-optcomp")
(version "0.14.1")
(version "0.14.3")
(home-page "https://github.com/janestreet/ppx_optcomp")
(source
(origin
@ -5785,7 +5797,7 @@ else expression.")
(file-name (git-file-name name version))
(sha256
(base32
"0j5smqa0hig1yn8wfrb4mv0y59kkwsalmqkm5asbd7kcc6589ap4"))))
"1iflgfzs23asw3k6098v84al5zqx59rx2qjw0mhvk56avlx71pkw"))))
(build-system dune-build-system)
(propagated-inputs
`(("ocaml-base" ,ocaml-base)
@ -6427,7 +6439,7 @@ the full Core is not available, such as in Javascript.")
(define-public ocaml-markup
(package
(name "ocaml-markup")
(version "1.0.0")
(version "1.0.2")
(home-page "https://github.com/aantron/markup.ml")
(source
(origin
@ -6438,7 +6450,7 @@ the full Core is not available, such as in Javascript.")
(file-name (git-file-name name version))
(sha256
(base32
"09hkrf9pw6hpb9j06p5bddklpnjwdjpqza3bx2179l970yl67an9"))))
"1kvqwrrcrys5d0kzdwxcj66jpi6sdhfas4pcg02pixx92q87vhqm"))))
(build-system dune-build-system)
(arguments
`(#:package "markup"))
@ -6491,6 +6503,9 @@ stream, and convert everything to UTF-8.")
(sha256
(base32
"0aif4abvfmi9xc1pvw5n5rbm6rzkkpsxyvdn0lanr33rjpvkwdlm"))))
(native-inputs
`(("ocaml-ounit" ,ocaml-ounit)
("pkg-config" ,pkg-config)))
(properties '())))
(define-public ocaml-tyxml
@ -6601,6 +6616,34 @@ advantage over ocamldoc is an accurate cross-referencer, which handles the
complexity of the OCaml module system.")
(license license:isc)))
(define-public ocaml-odoc-parser
(package
(name "ocaml-odoc-parser")
(version "0.9.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ocaml-doc/odoc-parser")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1jlc6dp3v90r1ra7r0jfw0xs8rylwdz9gymw4rd53h0p17cw1wnj"))))
(build-system dune-build-system)
(propagated-inputs
`(("ocaml-astring" ,ocaml-astring)
("ocaml-result" ,ocaml-result)))
(native-inputs
`(("ocaml-ppx-expect" ,ocaml-ppx-expect)))
(home-page "https://github.com/ocaml-doc/odoc-parser")
(synopsis "Parser for ocaml documentation comments")
(description
"This package provides a library for parsing the contents of OCaml
documentation comments, formatted using Odoc syntax, an extension of the
language understood by ocamldoc.")
(license license:isc)))
;; version 1.5.2 requires ocaml-markdown 1.0.0 which does not compile
;; with old version of dune used in package-with-ocaml4.07
(define-public ocaml4.07-odoc
@ -7102,7 +7145,7 @@ get an precise reference of when the executable was built.")))
(define-public ocamlformat
(package
(name "ocamlformat")
(version "0.18.0")
(version "0.19.0")
(source
(origin
(method git-fetch)
@ -7112,7 +7155,7 @@ get an precise reference of when the executable was built.")))
(file-name (git-file-name name version))
(sha256
(base32
"0n6363km8xr81pvyk453n6h2mb0256c5yxw3p1li4dn83f3lwxr1"))))
"0dp4pkznz9yvqx9gxwbid1z2b8ajkr8i27zay9ghx69624hz3i4z"))))
(build-system dune-build-system)
(arguments
'(#:package "ocamlformat"
@ -7130,6 +7173,7 @@ get an precise reference of when the executable was built.")))
("ocaml-odoc" ,ocaml-odoc)
("ocaml-ppxlib" ,ocaml-ppxlib)
("ocaml-re" ,ocaml-re)
("ocaml-odoc-parser" ,ocaml-odoc-parser)
("ocaml-stdio" ,ocaml-stdio)
("ocaml-uuseg" ,ocaml-uuseg)
("ocaml-uutf" ,ocaml-uutf)))