diff options
Diffstat (limited to 'gnu/packages/ocaml.scm')
-rw-r--r-- | gnu/packages/ocaml.scm | 854 |
1 files changed, 686 insertions, 168 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index e166cdec2f..0f4c351141 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016 Eric Bavier <[email protected]> ;;; Copyright © 2016 Jan Nieuwenhuizen <[email protected]> ;;; Copyright © 2016, 2018-2020, 2023 Efraim Flashner <[email protected]> -;;; Copyright © 2016-2022 Julien Lepiller <[email protected]> +;;; Copyright © 2016-2024 Julien Lepiller <[email protected]> ;;; Copyright © 2017 Ben Woodcroft <[email protected]> ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <[email protected]> ;;; Copyright © 2018 Peter Kreye <[email protected]> @@ -29,6 +29,8 @@ ;;; Copyright © 2022 Garek Dyszel <[email protected]> ;;; Copyright © 2023 Csepp <[email protected]> ;;; Copyright © 2023 Foundation Devices, Inc. <[email protected]> +;;; Copyright © 2023 Arnaud DABY-SEESARAM <[email protected]> +;;; Copyright © 2024 Sören Tempel <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -253,7 +255,7 @@ functional, imperative and object-oriented styles of programming.") (define-public ocaml-4.14 (package (name "ocaml") - (version "4.14.0") + (version "4.14.1") (source (origin (method url-fetch) (uri (string-append @@ -262,7 +264,7 @@ functional, imperative and object-oriented styles of programming.") "/ocaml-" version ".tar.xz")) (sha256 (base32 - "0axcc7c23pf4qinz4vxgkba6pwziwbp9i2ydwzar7x9zlp6diarn")))) + "0vxvwxxycpc3r5p7ys59d86vw5vdr2lhmck1f3s6qms2096rf9y1")))) (build-system gnu-build-system) (native-search-paths (list (search-path-specification @@ -713,7 +715,7 @@ underlying solvers like Cplex, Gurobi, Lpsolver, Glpk, CbC, SCIP or WBO.") (define-public ocaml-dose3 (package (name "ocaml-dose3") - (version "5.0.1") + (version "7.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -722,29 +724,16 @@ underlying solvers like Cplex, Gurobi, Lpsolver, Glpk, CbC, SCIP or WBO.") (file-name (git-file-name name version)) (sha256 (base32 - "0dxkw37gj8z45kd0dnrlfgpj8yycq0dphs8kjm9kvq9xc8rikxp3")) - (patches - (search-patches - "ocaml-dose3-add-unix-dependency.patch" - "ocaml-dose3-Fix-for-ocaml-4.06.patch" - "ocaml-dose3-dont-make-printconf.patch" - "ocaml-dose3-Install-mli-cmx-etc.patch")))) - (build-system ocaml-build-system) - (arguments - `(#:tests? #f ;the test suite requires python 2 - #:configure-flags - ,#~(list (string-append "SHELL=" - #+(file-append (canonical-package bash-minimal) - "/bin/sh"))) - #:make-flags - ,#~(list (string-append "LIBDIR=" #$output "/lib/ocaml/site-lib")))) - (propagated-inputs - (list ocaml-graph ocaml-cudf ocaml-extlib ocaml-re)) - (native-inputs - (list perl - ocaml-extlib - ocamlbuild - ocaml-cppo)) + "0hcjh68svicap7j9bghgkp49xa12qhxa1pygmrgc9qwm0m4dhirb")))) + (build-system dune-build-system) + (arguments `(#:package "dose3")) + (propagated-inputs (list ocaml-extlib + ocaml-base64-boot + ocaml-cudf + ocaml-graph + ocaml-re + ocaml-stdlib-shims)) + (native-inputs (list ocaml-ounit)) (home-page "https://www.mancoosi.org/software/") (synopsis "Package distribution management framework") (description "Dose3 is a framework made of several OCaml libraries for @@ -780,7 +769,7 @@ repository-wide uninstallability checks.") ,#~(list "build" "--lib-dir" (string-append #$output "/lib/ocaml/site-lib")))) (native-inputs - (list ocaml-findlib ocamlbuild ocaml-topkg opam)) + (list ocaml-findlib ocamlbuild ocaml-topkg opam-installer)) (home-page "https://erratique.ch/software/down") (synopsis "OCaml toplevel (REPL) upgrade") (description "Down is an unintrusive user experience upgrade for the @@ -846,10 +835,10 @@ the opam file format.") ;; With static-linking exception (license license:lgpl2.1+))) -(define-public opam +(define ocaml-opam-core (package - (name "opam") - (version "2.1.3") + (name "ocaml-opam-core") + (version "2.1.5") (source (origin (method git-fetch) (uri (git-reference @@ -858,34 +847,153 @@ the opam file format.") (file-name (git-file-name name version)) (sha256 (base32 - "1mw535zsw7xlvpgwnk1dan76z3f7lh5imlg0s6kdyhfg0iqisjd7")))) + "0ckd87rcmcz11iyhhm5qnmy27jbdffx6n1fr06hvrqqrzi00jljh")))) + (build-system dune-build-system) + (arguments `(#:package "opam-core" + ;; tests are run with the opam package + #:tests? #f + #: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"))))))))) + (propagated-inputs + (list ocaml-graph + ocaml-re + ocaml-cppo)) + (inputs (list bubblewrap)) + (home-page "https://opam.ocamlpro.com/") + (synopsis "Package manager for OCaml") + (description + "OPAM is a tool to manage OCaml packages. It supports multiple +simultaneous compiler installations, flexible package constraints, and a +Git-friendly development workflow.") + ;; The 'LICENSE' file waives some requirements compared to LGPLv3. + (license license:lgpl3))) + +(define ocaml-opam-format + (package + (inherit ocaml-opam-core) + (name "ocaml-opam-format") + (inputs '()) + (propagated-inputs (list ocaml-opam-core + ocaml-opam-file-format + ocaml-re)) + (arguments `(#:package "opam-format" + ;; tests are run with the opam package + #:tests? #f + #:phases %standard-phases)))) + +(define-public opam-installer + (package + (inherit ocaml-opam-core) + (name "opam-installer") + (native-inputs (list ocaml-opam-format + ocaml-cmdliner)) + (inputs '()) + (propagated-inputs '()) + (arguments `(#:package "opam-installer" + ;; requires all of opam + #:tests? #f)) + (synopsis "Tool for installing OCaml packages") + (description "@var{opam-installer} is a tool for installing OCaml packages +based on @code{.install} files defined by the OPAM package manager. It is +useful for installing OCaml packages without requiring the entirety of +OPAM.") + (properties + ;; opam-installer is used as a tool and not as a library, we can use the + ;; OCaml 4.14 compiled opam until opam is compatible with OCaml 5.0. + `((ocaml5.0-variant . ,(delay opam-installer)))))) + +(define ocaml-opam-repository + (package + (inherit ocaml-opam-core) + (name "ocaml-opam-repository") + (inputs '()) + (propagated-inputs (list ocaml-opam-format)) + (arguments `(#:package "opam-repository" + ;; tests are run with the opam package + #:tests? #f + #:phases %standard-phases)))) + +(define ocaml-opam-state + (package + (inherit ocaml-opam-core) + (name "ocaml-opam-state") + (arguments `(#:package "opam-state" + ;; tests are run with the opam package + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'pre-build + (lambda* (#:key inputs make-flags #:allow-other-keys) + (let ((bwrap (search-input-file inputs "/bin/bwrap"))) + ;; 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"))))))))) + (inputs (list bubblewrap)) + (propagated-inputs (list ocaml-opam-repository)))) + +(define ocaml-opam-solver + (package + (inherit ocaml-opam-core) + (name "ocaml-opam-solver") + (inputs '()) + (propagated-inputs (list ocaml-opam-format + ocaml-mccs + ocaml-dose3)) + (arguments `(#:package "opam-solver" + ;; tests are run with the opam package + #:tests? #f + #:phases %standard-phases)))) + +(define ocaml-opam-client + (package + (inherit ocaml-opam-core) + (name "ocaml-opam-client") + (arguments `(#:package "opam-client" + ;; tests are run with the opam package + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'pre-build + (lambda* (#:key inputs make-flags #:allow-other-keys) + (let ((bwrap (search-input-file inputs "/bin/bwrap"))) + (substitute* "src/client/opamInitDefaults.ml" + (("\"bwrap\"") (string-append "\"" bwrap "\""))))))))) + (inputs (list bubblewrap)) + (propagated-inputs + (list ocaml-opam-state + ocaml-opam-solver + ocaml-opam-repository + ocaml-base64 + ocaml-re + ocaml-cmdliner)))) + +(define-public opam + (package + (inherit ocaml-opam-core) + (name "opam") (build-system dune-build-system) (arguments - `(#:phases + `(#:package "opam" + #: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 @@ -918,7 +1026,10 @@ name = Guix Builder") (("diff opamroot-versions.test opamroot-versions.out") "run true") ;; Disable a failing test, probably because the repository we ;; replaced is not as expected - (("diff opamrt-big-upgrade.test opamrt-big-upgrade.out") "run true")) + (("diff opamrt-big-upgrade.test opamrt-big-upgrade.out") "run true") + ;; Disable a failing test because of missing sandboxing + ;; functionality + (("diff init.test init.out") "run true")) (substitute* "tests/reftests/dune" ;; Because of our changes to the previous file, we cannot check ;; it can be regenerated @@ -954,34 +1065,47 @@ name = Guix Builder") ("which" ,which) ;; Data for tests - ("opam-repo-009e00fa" ,(opam-repo "009e00fa86300d11c311309a2544e5c6c3eb8de2" - "1wwy0rwrsjf4q10j1rh1dazk32fbzhzy6f7zl6qmndidx9b1bq7w")) - ("opam-repo-7090735c" ,(opam-repo "7090735c9d1dd2dc481c4128c5ef4d3667238f15" - "1bccsgjhlp64lmvfjfn6viywf3x73ji75myg9ssf1ij1fkmabn0z")) - ("opam-repo-a5d7cdc0" ,(opam-repo "a5d7cdc0c91452b0aef4fa71c331ee5237f6dddd" - "0z7kawqisy07088p5xjxwpvmvzlbj1d9cgdipsj90yx7nc5qh369")) - ("opam-repo-ad4dd344" ,(opam-repo "ad4dd344fe5cd1cab49ced49d6758a9844549fb4" - "1a1qj47kj8xjdnc4zc50ijrix1kym1n7k20n3viki80a7518baw8")) - ("opam-repo-c1d23f0e" ,(opam-repo "c1d23f0e17ec83a036ebfbad1c78311b898a2ca0" - "0j9abisx3ifzm66ci3p45mngmz4f0fx7yd9jjxrz3f8w5jffc9ii")) - ("opam-repo-f372039d" ,(opam-repo "f372039db86a970ef3e662adbfe0d4f5cd980701" - "0ld7fcry6ss6fmrpswvr6bikgx299w97h0gwrjjh7kd7rydsjdws"))))) - (inputs - (list ocaml ncurses curl bubblewrap ocaml-cmdliner ocaml-dose3 - ocaml-mccs ocaml-opam-file-format ocaml-re)) + ("opam-repo-0070613707" + ,(opam-repo "00706137074d536d2019d2d222fbe1bea929deda" + "1gv1vvmfscj7wirfv6qncp8pf81wygnpzjwd0lyqcxm7g8r8lb4w")) + ("opam-repo-009e00fa" + ,(opam-repo "009e00fa86300d11c311309a2544e5c6c3eb8de2" + "1wwy0rwrsjf4q10j1rh1dazk32fbzhzy6f7zl6qmndidx9b1bq7w")) + ("opam-repo-7090735c" + ,(opam-repo "7090735c9d1dd2dc481c4128c5ef4d3667238f15" + "1bccsgjhlp64lmvfjfn6viywf3x73ji75myg9ssf1ij1fkmabn0z")) + ("opam-repo-a5d7cdc0" + ,(opam-repo "a5d7cdc0c91452b0aef4fa71c331ee5237f6dddd" + "0z7kawqisy07088p5xjxwpvmvzlbj1d9cgdipsj90yx7nc5qh369")) + ("opam-repo-ad4dd344" + ,(opam-repo "ad4dd344fe5cd1cab49ced49d6758a9844549fb4" + "1a1qj47kj8xjdnc4zc50ijrix1kym1n7k20n3viki80a7518baw8")) + ("opam-repo-c1842d168d" + ,(opam-repo "c1842d168de956caf06d7ac8588e65020d7594d8" + "142y1ac7sprygyh91shcp0zcyfxjjkshi9g44qgg4rx60rbsbhai")) + ("opam-repo-c1d23f0e" + ,(opam-repo "c1d23f0e17ec83a036ebfbad1c78311b898a2ca0" + "0j9abisx3ifzm66ci3p45mngmz4f0fx7yd9jjxrz3f8w5jffc9ii")) + ("opam-repo-f372039d" + ,(opam-repo "f372039db86a970ef3e662adbfe0d4f5cd980701" + "0ld7fcry6ss6fmrpswvr6bikgx299w97h0gwrjjh7kd7rydsjdws")) + ("opam-repo-11ea1cb" + ,(opam-repo "11ea1cb6f2418b1f8a6679e4422771a04c9c3655" + "1s4p0wfn3bx97yvm8xvj3yhzv2pz0jwml68g2ybv37hj9mpbrsq0")) + ("opam-repo-297366c" + ,(opam-repo "297366cd01c3aaf29b967bf0b34ccc7989d4d5b3" + "1ysg69gys37nc2cxivs2ikh6xp0gj85if4rcrr874mqb9z12dm0j")) + ("opam-repo-3235916" + ,(opam-repo "3235916a162a59d7c82dac3fe24214975d48f1aa" + "1yf73rv2n740a4s9g7a9k4j91b4k7al88nwnw9cdw0k2ncbmr486")) + ("opam-repo-de897adf36c4230dfea812f40c98223b31c4521a" + ,(opam-repo "de897adf36c4230dfea812f40c98223b31c4521a" + "1m18x9gcwnbar8yv9sbfz8a3qpw412fp9cf4d6fb7syn0p0h96jw"))))) + (inputs (list ocaml-opam-client)) (properties ;; OPAM is used as a tool and not as a library, we can use the OCaml 4.14 ;; compiled opam until opam is compatible with OCaml 5.0. - `((ocaml5.0-variant . ,(delay opam)))) - (home-page "https://opam.ocamlpro.com/") - (synopsis "Package manager for OCaml") - (description - "OPAM is a tool to manage OCaml packages. It supports multiple -simultaneous compiler installations, flexible package constraints, and a -Git-friendly development workflow.") - - ;; The 'LICENSE' file waives some requirements compared to LGPLv3. - (license license:lgpl3))) + `((ocaml5.0-variant . ,(delay opam)))))) (define-public ocaml-opam-monorepo (package @@ -1345,6 +1469,39 @@ libglade (and it an generate OCaml code from .glade files), libpanel, librsvg and quartz.") (license license:lgpl2.1))) +(define-public binsec + (package + (name "binsec") + (version "0.8.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/binsec/binsec") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j6lwj20jaq0702v2fqvsrax1400zqbvz5q2cmjqhvrjzcfcl0kr")))) + (build-system dune-build-system) + (native-inputs (list gmp ocaml-qcheck ocaml-ounit2)) + (propagated-inputs (list dune-site + ocaml-base + ocaml-menhir + ocaml-graph + ocaml-zarith + ocaml-grain-dypgen + ocaml-toml)) + (synopsis "Binary-level analysis platform") + (description + "BINSEC is a binary analysis platform which implements analysis +techniques such as symbolic execution. The goal of BINSEC is to improve +software security at the binary level through binary analysis. BINSEC +is a research tool which relies on prior work in binary code analysis +at the intersection of formal methods, program analysis security and +software engineering.") + (home-page "https://binsec.github.io/") + (license license:lgpl2.1))) + (define-public unison (package (name "unison") @@ -1509,6 +1666,52 @@ to JUnit and other XUnit testing frameworks.") other XUnit testing frameworks.") (license license:expat))) +(define-public ocaml-junit + (package + (name "ocaml-junit") + (version "2.0.2") + (home-page "https://github.com/Khady/ocaml-junit") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1cam7zzarrh9p1l5m3ba3h5rkh9mhark8j37rjgw35a66qd0gds1")))) + (build-system dune-build-system) + (arguments + `(#:package "junit" + #:phases (modify-phases %standard-phases + (add-before 'build 'dune-subst + (lambda _ + (invoke "dune" "subst") #t))))) + (properties `((upstream-name . "junit"))) + (propagated-inputs (list ocaml-ounit ocaml-ptime ocaml-tyxml ocaml-odoc)) + (synopsis "JUnit XML reports generation library") + (description "Ocaml-junit is a package for the creation of JUnit XML +reports. It provides a typed API to produce valid reports. They are supposed +to be accepted by Jenkins.") + ;; with OCaml linking exception + (license license:gpl3+))) + +(define-public ocaml-junit-alcotest + (package + (inherit ocaml-junit) + (name "ocaml-junit-alcotest") + (propagated-inputs (list ocaml-odoc ocaml-alcotest ocaml-junit)) + (build-system dune-build-system) + (arguments + `(#:package "junit_alcotest" + #:tests? #f)); tests fail + (properties `((upstream-name . "junit_alcotest"))) + (synopsis "JUnit XML reports generation for alcotest tests") + (description "This package generates JUnit XML reports from ocaml-alcotest +test suites.") + ;; with OCaml linking exception + (license license:gpl3+))) + (define-public camlzip (package (name "camlzip") @@ -1716,7 +1919,7 @@ full_split, cut, rcut, etc..") (define-public dune-bootstrap (package (name "dune") - (version "3.6.1") + (version "3.11.0") (source (origin (method git-fetch) (uri (git-reference @@ -1725,7 +1928,7 @@ full_split, cut, rcut, etc..") (file-name (git-file-name name version)) (sha256 (base32 - "0gv851wxbv5ln20429nj7p92spzxgw8vngg9z94q39aawn6q8lx6")))) + "12k8k2964s1z05mj71f9imwyvk0jyh5h6mpw4hpyr2d73iw53ink")))) (build-system ocaml-build-system) (arguments `(#:tests? #f; require odoc @@ -1742,9 +1945,10 @@ full_split, cut, rcut, etc..") #t))))) (home-page "https://github.com/ocaml/dune") (synopsis "OCaml build system") - (description "Dune is a build system that was designed to simplify the -release of Jane Street packages. It reads metadata from @file{dune} files -following a very simple s-expression syntax.") + (description "Dune is a build system for OCaml. It provides a consistent +experience and takes care of the low-level details of OCaml compilation. +Descriptions of projects, libraries and executables are provided in +@file{dune} files following an s-expression syntax.") (properties '((hidden? . #t))) (license license:expat))) @@ -1846,6 +2050,104 @@ config.h files for instance. Among other things, dune-configurator allows one t (propagated-inputs (list ocaml5.0-dune-configurator)))) +(define-public ocaml-pp + (package + (name "ocaml-pp") + (version "1.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml-dune/pp") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ylwb8lbjzj1prnal3c5p404dvh7bv4s19cvgrplnd7s46lvnj50")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-odoc)) + (native-inputs (list ocaml-ppx-expect)) + (home-page "https://github.com/ocaml-dune/pp") + (synopsis "Pretty-printing library") + (description + "This library provides an alternative to the @code{Format} module of the OCaml +standard library. Pp uses the same concepts of boxes and break hints, and the +final rendering is done to formatter from the @code{Format} module. However it +defines its own algebra which some might find easier to work with and reason +about.") + (license license:expat))) + +(define-public dune-ordering + (package + (inherit dune) + (name "dune-ordering") + (source (origin + (inherit (package-source dune)) + (modules '((guix build utils))) + (snippet + `(begin + (delete-file-recursively "vendor/pp") + (delete-file-recursively "vendor/csexp"))))) + (build-system dune-build-system) + (arguments + `(#:package "ordering" + ;; Tests have a cyclic dependency on stdune + #:tests? #f)) + (synopsis "Dune element ordering") + (description "This library represents element ordering in OCaml."))) + +(define-public dune-dyn + (package + (inherit dune-ordering) + (name "dune-dyn") + (build-system dune-build-system) + (arguments + `(#:package "dyn" + ;; Tests have a cyclic dependency on stdune + #:tests? #f)) + (propagated-inputs (list ocaml-pp dune-ordering)) + (synopsis "Dune dynamic types") + (description "This library represents dynamic types in OCaml."))) + +(define-public dune-stdune + (package + (inherit dune-ordering) + (name "dune-stdune") + (build-system dune-build-system) + (arguments + `(#:package "stdune" + ;; Tests have a cyclic dependency on itself + #:tests? #f)) + (propagated-inputs (list dune-dyn ocaml-pp)) + (synopsis "Unstable standard library from Dune") + (description "This library implements the standard functions used by Dune."))) + +(define-public dune-private-libs + (package + (inherit dune-ordering) + (name "dune-private-libs") + (build-system dune-build-system) + (arguments + `(#:package "dune-private-libs" + #:tests? #f)) + (native-inputs (list dune-stdune ocaml-ppx-expect ocaml-ppx-inline-test)) + (synopsis "Private libraries of Dune") + (description "This package contains code that is shared between various +dune packages. However, it is not meant for public consumption and provides +no stability guarantee."))) + +(define-public dune-site + (package + (inherit dune-ordering) + (name "dune-site") + (build-system dune-build-system) + (arguments + `(#:package "dune-site" + #:tests? #f)) + (propagated-inputs (list dune-private-libs)) + (synopsis "Location information embedder") + (description "This library helps embed location information inside +executables and libraries"))) + (define-public ocaml-csexp (package (name "ocaml-csexp") @@ -2058,6 +2360,84 @@ defined in this library.") #:ocaml ,ocaml-5.0 #:findlib ,ocaml5.0-findlib)))) +(define-public ocaml-iso8601 + (package + (name "ocaml-iso8601") + (version "0.2.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml-community/ISO8601.ml") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nzadswspizi7s6sf67icn2xgc3w150x8vdg5nk1mjrm2s98n6d3")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-stdlib-shims ocaml-core-unix ocaml-ounit)) + (synopsis "Parser and printer for date-times in ISO8601") + (description "This package allows parsing of dates that follow the ISO 8601 +and RFC 3339 formats in OCaml.") + (home-page "https://github.com/ocaml-community/ISO8601.ml") + (license license:expat))) + +(define-public ocaml-toml + (package + (name "ocaml-toml") + (version "7.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml-toml/To.ml") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0z2873mj3i6h9cg8zlkipcjab8jympa4c4avhk4l04755qzphkds")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-base ocaml-mdx ocaml-menhir ocaml-iso8601)) + (synopsis "TOML library for OCaml") + (description + "This package provides an OCaml library for interacting with files +in the @acronym{TOML, Tom's Obvious Minimal Language} format. Specifically, +it provides a parser, a serializer, and a pretty printer.") + (home-page "https://github.com/ocaml-toml/To.ml") + (license license:expat))) + +(define-public ocaml-grain-dypgen + (package + (name "ocaml-grain-dypgen") + (version "0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/grain-lang/dypgen") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jyxkvi75nchk5kmhqixmjy70z55gmlqa83pxn0hsv2qxvyqxavw")))) + (build-system ocaml-build-system) + (arguments + (list + ;; Upstream does not have a test suite. + #:tests? #f + #:make-flags #~(let ((out #$output)) + (list (string-append "OCAMLLIBDIR=" out + "/lib/ocaml/site-lib") + (string-append "BINDIR=" out "/bin") + (string-append "MANDIR=" out "/share/man"))) + #:phases #~(modify-phases %standard-phases + (delete 'configure)))) + (properties `((upstream-name . "grain_dypgen"))) + (home-page "https://github.com/grain-lang/dypgen") + (synopsis "Self-extensible parsers and lexers for OCaml") + (description + "This package provides a @acronym{GLR, generalized LR} parser generator +for OCaml. It is able to generate self-extensible parsers (also called +adaptive parsers) as well as extensible lexers for the parsers it produces.") + (license license:cecill-b))) + (define-public ocaml-topkg (package (name "ocaml-topkg") @@ -2071,7 +2451,7 @@ defined in this library.") "11ycfk0prqvifm9jca2308gw8a6cjb1hqlgfslbji2cqpan09kpq")))) (build-system ocaml-build-system) (native-inputs - (list opam ocamlbuild)) + (list opam-installer ocamlbuild)) (propagated-inputs `(("result" ,ocaml-result))) (arguments @@ -2101,7 +2481,7 @@ creation and publication procedures.") "0h2mjyzhay1p4k7n0mzaa7hlc7875kiy6m1i3r1n03j6hddpzahi")))) (build-system ocaml-build-system) (native-inputs - (list opam ocamlbuild)) + (list opam-installer ocamlbuild)) (propagated-inputs `(("topkg" ,ocaml-topkg))) (arguments @@ -2189,7 +2569,7 @@ manipulate such data.") "1ss4w3qxsfp51d88r0j7dzqs05dbb1xdx11hn1jl9cvd03ma0g9z")))) (build-system ocaml-build-system) (native-inputs - (list ocamlbuild opam)) + (list ocamlbuild opam-installer)) (propagated-inputs `(("topkg" ,ocaml-topkg))) (arguments @@ -2304,13 +2684,13 @@ most of the POSIX and GNU conventions.") "0q8j2in2473xh7k4hfgnppv9qy77f2ih89yp6yhpbp92ba021yzi")))) (build-system ocaml-build-system) (native-inputs - `(("ocamlbuild" ,ocamlbuild) - ("opam" ,opam) - ("topkg" ,ocaml-topkg))) + (list ocamlbuild + opam-installer + ocaml-topkg)) (propagated-inputs - `(("cmdliner" ,ocaml-cmdliner) - ("ocaml-stdlib-shims" ,ocaml-stdlib-shims) - ("ocaml-uchar" ,ocaml-uchar))) + (list ocaml-cmdliner + ocaml-stdlib-shims + ocaml-uchar)) (arguments `(#:tests? #f #:build-flags (list "build" "--with-base-unix" "true" "--with-cmdliner" "true") @@ -2336,9 +2716,9 @@ functions.") "1ykhg9gd3iy7zsgyiy2p9b1wkpqg9irw5pvcqs3sphq71iir4ml6")))) (build-system ocaml-build-system) (native-inputs - `(("ocamlbuild" ,ocamlbuild) - ("opam" ,opam) - ("topkg" ,ocaml-topkg))) + (list ocamlbuild + opam-installer + ocaml-topkg)) (arguments `(#:tests? #f #:build-flags (list "build") @@ -2359,7 +2739,7 @@ immutability.") (define-public ocaml-alcotest (package (name "ocaml-alcotest") - (version "1.6.0") + (version "1.7.0") (source (origin (method git-fetch) (uri (git-reference @@ -2368,7 +2748,7 @@ immutability.") (file-name (git-file-name name version)) (sha256 (base32 - "195612n7p8y5ba6n19glql7qffl8n3aqkl9nrlln5lb9739gpv4w")))) + "0v01vciihd12r30pc4dai70s15p38gy990b4842sn16pvl0ab1az")))) (build-system dune-build-system) (arguments `(#:package "alcotest" @@ -2456,6 +2836,89 @@ simple (yet expressive) query language to select the tests to run.") syntactic tools.") (license license:expat))) +(define-public ocaml-yaml + (package + (name "ocaml-yaml") + (version "3.2.0") + (home-page "https://github.com/avsm/ocaml-yaml") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1m0i9qdazmziswfw1bz4m1x9mlzqyv336vbrss0c21am4im9n6k6")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-ppx-sexp-conv ocaml-ctypes ocaml-bos)) + (native-inputs (list ocaml-fmt + ocaml-sexplib + ocaml-logs + ocaml-mdx + ocaml-alcotest + ocaml-crowbar + ocaml-junit-alcotest + ocaml-ezjsonm)) + (synopsis "Parse and generate YAML 1.1/1.2 files") + (description + "This package is an OCaml library to parse and generate the YAML file +format. It is intended to be interoperable with the @code{Ezjsonm} +JSON handling library, if the simple common subset of Yaml is used. Anchors and +other advanced Yaml features are not implemented in the JSON compatibility +layer.") + (license license:isc))) + +(define-public ocaml-ppx-deriving-yaml + (package + (name "ocaml-ppx-deriving-yaml") + (version "0.2.1") + (home-page "https://github.com/patricoferris/ppx_deriving_yaml") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1cxcqgvyl4ykyl86mf2d4ka6frnq51m1yqy0z5v6vdxkixllf9jd")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-ppxlib ocaml-ppx-deriving ocaml-yaml + ocaml-odoc)) + (native-inputs (list ocaml-alcotest ocaml-bos ocaml-mdx ocaml-ezjsonm)) + (properties `((upstream-name . "ppx_deriving_yaml"))) + (synopsis "Yaml PPX Deriver") + (description + "This package contains @code{deriving} conversion functions to and from +yaml for OCaml types.") + (license license:isc))) + +(define-public ocaml-ppx-import + (package + (name "ocaml-ppx-import") + (version "1.10.0") + (home-page "https://github.com/ocaml-ppx/ppx_import") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06srfd6whfwkmjvl6m61kvc65fb7j9b25bhfr1mp338zm87smv5p")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-ppx-deriving ocaml-ppxlib + ocaml-ppx-sexp-conv)) + (native-inputs (list ocaml-ounit ocaml-sexplib0)) + (properties `((upstream-name . "ppx_import"))) + (synopsis "Extension for importing declarations from interface files.") + (description + "Ppx-import is a syntax extension for importing declarations from +interface files.") + (license license:expat))) + (define-public ocaml-parmap (package (name "ocaml-parmap") @@ -2539,7 +3002,7 @@ maintained. The @code{Pycaml} module provides a signature close to "16cg4byj8lfbbw96dhh8sks5y9n1c3fshz7f2p8m7wgisqax7bf4")))) (build-system ocaml-build-system) (native-inputs - (list ocamlbuild opam ocaml-topkg)) + (list ocamlbuild opam-installer ocaml-topkg)) (arguments `(#:tests? #f #:build-flags (list "build") @@ -2663,7 +3126,7 @@ architectures.") #:phases (modify-phases %standard-phases (delete 'configure)))) - (native-inputs (list ocaml-topkg ocamlbuild opam)) + (native-inputs (list ocaml-topkg ocamlbuild opam-installer)) (home-page "https://erratique.ch/software/hmap") (synopsis "Heterogeneous value maps for OCaml") (description @@ -3107,7 +3570,7 @@ ocaml lwt.") (modify-phases %standard-phases (delete 'configure)))) (native-inputs - (list ocamlbuild opam)) + (list ocamlbuild opam-installer)) (propagated-inputs `(("fmt" ,ocaml-fmt) ("lwt" ,ocaml-lwt) @@ -3141,7 +3604,7 @@ message report is decoupled from logging and is handled by a reporter.") (modify-phases %standard-phases (delete 'configure)))) (native-inputs - (list ocamlbuild opam)) + (list ocamlbuild opam-installer)) (propagated-inputs `(("topkg" ,ocaml-topkg) ("astring" ,ocaml-astring))) @@ -3171,7 +3634,7 @@ file system and is independent from any system library.") (modify-phases %standard-phases (delete 'configure)))) (native-inputs - (list ocamlbuild opam)) + (list ocamlbuild opam-installer)) (propagated-inputs `(("topkg" ,ocaml-topkg) ("astring" ,ocaml-astring) @@ -3245,7 +3708,7 @@ does not require additional C libraries.") (modify-phases %standard-phases (delete 'configure)))) (native-inputs - (list ocamlbuild ocaml-topkg opam)) + (list ocamlbuild ocaml-topkg opam-installer)) (home-page "https://erratique.ch/software/xmlm") (synopsis "Streaming XML codec for OCaml") (description "Xmlm is a streaming codec to decode and encode the XML data @@ -3282,7 +3745,7 @@ and consumable.") (define-public ocaml-sedlex (package (name "ocaml-sedlex") - (version "2.5") + (version "2.6") (source (origin (method git-fetch) (uri (git-reference @@ -3291,7 +3754,7 @@ and consumable.") (file-name (git-file-name name version)) (sha256 (base32 - "062a5dvrzvb81l3a9phljrhxfw9nlb61q341q0a6xn65hll3z2wy")))) + "1z8mmk1idh9hjhh2b9rp5b1h8kmzcxhagqkw0pvxn6ykx1brskq1")))) (build-system dune-build-system) (arguments `(#:tests? #f ; no tests @@ -3365,7 +3828,7 @@ and consumable.") (modify-phases %standard-phases (delete 'configure)))) (native-inputs - (list ocamlbuild opam)) + (list ocamlbuild opam-installer)) (home-page "https://github.com/ocaml/uchar") (synopsis "Compatibility library for OCaml's Uchar module") (description "The uchar package provides a compatibility library for the @@ -3391,9 +3854,9 @@ and consumable.") (modify-phases %standard-phases (delete 'configure)))) (native-inputs - `(("ocamlbuild" ,ocamlbuild) - ("opam" ,opam) - ("topkg" ,ocaml-topkg))) + (list ocamlbuild + opam-installer + ocaml-topkg)) (propagated-inputs `(("uchar" ,ocaml-uchar) ("cmdliner" ,ocaml-cmdliner))) @@ -3438,7 +3901,7 @@ string values and to directly encode characters in OCaml Buffer.t values.") #t))))) (native-inputs `(("ocamlbuild" ,ocamlbuild) - ("opam" ,opam) + ("opam-installer" ,opam-installer) ("topkg" ,ocaml-topkg) ;; Test data is otherwise downloaded with curl ("NormalizationTest.txt" @@ -3479,9 +3942,9 @@ without a complete in-memory representation.") (modify-phases %standard-phases (delete 'configure)))) (native-inputs - `(("ocamlbuild" ,ocamlbuild) - ("opam" ,opam) - ("topkg" ,ocaml-topkg))) + (list ocamlbuild + opam-installer + ocaml-topkg)) (propagated-inputs `(("uutf" ,ocaml-uutf) ("cmdliner" ,ocaml-cmdliner))) @@ -3899,7 +4362,7 @@ epoch.") #:phases (modify-phases %standard-phases (delete 'configure)))) (propagated-inputs (list ocaml-result js-of-ocaml)) - (native-inputs (list ocaml-findlib ocamlbuild ocaml-topkg opam)) + (native-inputs (list ocaml-findlib ocamlbuild ocaml-topkg opam-installer)) (home-page "https://erratique.ch/software/ptime") (synopsis "POSIX time for OCaml") (description @@ -4042,7 +4505,7 @@ multitude of other network protocols (FTP/SMTP/RTSP/etc).") (define-public ocaml-base64 (package (name "ocaml-base64") - (version "3.5.0") + (version "3.5.1") (source (origin (method git-fetch) (uri (git-reference @@ -4051,10 +4514,9 @@ multitude of other network protocols (FTP/SMTP/RTSP/etc).") (file-name (git-file-name name version)) (sha256 (base32 - "068hwdbpl7vx9jjpxdc6a10zqd8xa55j3xx7ga6fnwrlfsbs2pjj")))) + "1jq349jp663hq51a941afr2y4yyh34r19zsxla73ks9bywj4mm2q")))) (build-system dune-build-system) - (native-inputs - (list ocaml-alcotest ocaml-bos ocaml-rresult)) + (native-inputs (list ocaml-alcotest ocaml-bos ocaml-rresult)) (home-page "https://github.com/mirage/ocaml-base64") (synopsis "Base64 encoding for OCaml") (description "Base64 is a group of similar binary-to-text encoding schemes @@ -4062,6 +4524,14 @@ that represent binary data in an ASCII string format by translating it into a radix-64 representation. It is specified in RFC 4648.") (license license:isc))) +;; A variant without tests that is used to prevent a cyclic dependency when +;; compiling ocaml-dose3. +(define ocaml-base64-boot + (package + (inherit ocaml-base64) + (arguments `(#:tests? #f)) + (native-inputs '()))) + (define-public ocamlify (package (name "ocamlify") @@ -4769,7 +5239,7 @@ tool and piqi-ocaml.") (modify-phases %standard-phases (delete 'configure)))) (native-inputs - (list ocamlbuild opam)) + (list ocamlbuild opam-installer)) (propagated-inputs `(("cmdliner" ,ocaml-cmdliner) ("topkg" ,ocaml-topkg))) @@ -4783,27 +5253,22 @@ and 4 (random based) according to RFC 4122.") (define-public ocaml-graph (package (name "ocaml-graph") - (version "1.8.8") + (version "2.0.0") + (home-page "https://github.com/backtracking/ocamlgraph/") (source (origin - (method url-fetch) - (uri (string-append "http://ocamlgraph.lri.fr/download/" - "ocamlgraph-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0m9g16wrrr86gw4fz2fazrh8nkqms0n863w7ndcvrmyafgxvxsnr")))) - (build-system ocaml-build-system) - (arguments - `(#:install-target "install-findlib" - #:tests? #f - #:phases - (modify-phases %standard-phases - (add-before 'configure 'set-shell - (lambda* (#:key inputs #:allow-other-keys) - (setenv "CONFIG_SHELL" - (search-input-file inputs "/bin/sh"))))))) - (inputs (list lablgtk)) + "1gjrsyyamvvn2rd9n9yjx6hsglhw0dbm4cgazq0dpx0bbr4inwc3")))) + (build-system dune-build-system) + (arguments `(#:package "ocamlgraph")) + (propagated-inputs (list ocaml-stdlib-shims)) + (native-inputs (list ocaml-graphics)) (properties `((upstream-name . "ocamlgraph"))) - (home-page "https://ocamlgraph.lri.fr/") (synopsis "Graph library for OCaml") (description "OCamlgraph is a generic graph library for OCaml.") (license license:lgpl2.1))) @@ -4928,6 +5393,11 @@ necessary set of rewriters.") ;; We don't have a monolithic llvm (substitute* "oasis/llvm.setup.ml.in" (("llvm_static = \"true\"") "true")) + ;; Package update removed Make_binable, which was an alias + ;; for Make_binable_without_uuid + (substitute* (find-files "." ".") + (("Utils.Make_binable1\\(") "Utils.Make_binable1_without_uuid(") + (("Utils.Make_binable\\(") "Utils.Make_binable_without_uuid(")) (invoke "./configure" "--prefix" (assoc-ref outputs "out") "--libdir" @@ -5305,12 +5775,8 @@ without writing or generating any C!") ;; Guix doesn't have cc, but it has gcc (("\"cc\"") "\"gcc\"")) #t))))) - (inputs - `(("topkg" ,ocaml-topkg) - ("opam" ,opam))) - (native-inputs - `(("astring" ,ocaml-astring) - ("ocamlbuild" ,ocamlbuild))) + (inputs (list ocaml-topkg opam-installer)) + (native-inputs (list ocaml-astring ocamlbuild)) (synopsis "OCamlbuild plugin for C stubs") (description "Ocb-stubblr is about ten lines of code that you need to repeat over, over, over and over again if you are using ocamlbuild to build @@ -5338,7 +5804,7 @@ OCaml projects that contain C stubs.") (modify-phases %standard-phases (delete 'configure)))) (native-inputs - (list ocamlbuild ocaml-astring opam pkg-config)) + (list ocamlbuild ocaml-astring opam-installer pkg-config)) (inputs `(("topkg" ,ocaml-topkg) ("sdl2" ,sdl2) @@ -5380,7 +5846,7 @@ developed in other systems. In particular, it enjoys a minimalistic syntax.") (define-public ocaml-jst-config (package (name "ocaml-jst-config") - (version "0.15.1") + (version "0.16.0") (source (origin (method git-fetch) @@ -5390,7 +5856,7 @@ developed in other systems. In particular, it enjoys a minimalistic syntax.") (file-name (git-file-name name version)) (sha256 (base32 - "1yp5p63clvaxmkf7vlasgyapxc31x29c154pyq63n0fvi2fpf4y3")))) + "01419gk2w2r1xqz11rw1glngi8fi6gq9sh79c06vasrk6vxriy0s")))) (build-system dune-build-system) (arguments '(#:tests? #f)) ; no tests (propagated-inputs @@ -5905,7 +6371,7 @@ parsexp_io.") (define-public ocaml-sexplib (package (name "ocaml-sexplib") - (version "0.15.1") + (version "0.16.0") (home-page "https://github.com/janestreet/sexplib") (source (origin (method git-fetch) @@ -5915,7 +6381,7 @@ parsexp_io.") (file-name (git-file-name name version)) (sha256 (base32 - "1gcvcc0jw6pb69wwfjnaqz1jk5simap2kdb7g43v7v7mksg8sh9f")))) + "0hl0zf2cgjivvlsrf85f5lg4xprcgbz7qg2z51k838y7k2121k78")))) (build-system dune-build-system) (propagated-inputs (list ocaml-base ocaml-num ocaml-parsexp ocaml-sexplib0)) @@ -6101,6 +6567,34 @@ ppx_deriving and ppx_type_conv to inter-operate gracefully when linked as part of the same ocaml-migrate-parsetree driver.") (license license:bsd-3))) +(define-public ocaml-ppx-deriving-yojson + (package + (name "ocaml-ppx-deriving-yojson") + (version "3.7.0") + (home-page "https://github.com/ocaml-ppx/ppx_deriving_yojson") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nazam6zlzm9ngyyr1q7s1vmw162fnrvsn8r6bsn5lnpaygv28ly")))) + (build-system dune-build-system) + (propagated-inputs + (list ocaml-yojson + ocaml-result + ocaml-ppx-deriving + ocaml-ppxlib)) + (native-inputs (list ocaml-ounit)) + (properties `((upstream-name . "ppx_deriving_yojson"))) + (synopsis "JSON codec generator for OCaml") + (description + "Ppx_deriving_yojson is a ppx_deriving plugin that provides a JSON codec +generator.") + (license license:expat))) + (define-public ocaml-cinaps ;; The commit removes the unused dependency of ocaml-ppx-jane. We need to ;; use this as we would otherwise have a dependency loop between @@ -6134,7 +6628,7 @@ the OCaml code.") (define-public ocaml-ppxlib (package (name "ocaml-ppxlib") - (version "0.25.1") + (version "0.28.0") (home-page "https://github.com/ocaml-ppx/ppxlib") (source (origin @@ -6145,7 +6639,7 @@ the OCaml code.") (file-name (git-file-name name version)) (sha256 (base32 - "1402fzv5mg5grf3hb82fqsdkzxk07yfp9hvjh33dzjwjsqfhx3wi")))) + "0alwn1bnc228z6ivj7dpcszrylbg1z3img8vrcihaa9crbx3xxcb")))) (build-system dune-build-system) (arguments `(#:phases @@ -6289,7 +6783,7 @@ new record values.") (define-public ocaml-ppx-sexp-conv (package (name "ocaml-ppx-sexp-conv") - (version "0.15.0") + (version "0.15.1") (home-page "https://github.com/janestreet/ppx_sexp_conv") (source (origin @@ -6300,7 +6794,7 @@ new record values.") (file-name (git-file-name name version)) (sha256 (base32 - "1fyf7hgxprn7pj58rmmrfpv938a0avpzvvk6wzihpmfm6whgbdm8")))) + "163kn5gv1va84s1ysa1fm40fw3hm9xm3788qsvxmm4l3gij2g29m")))) (build-system dune-build-system) (propagated-inputs (list ocaml-base ocaml-ppxlib)) @@ -6363,10 +6857,34 @@ variant types.") string conversion.") (license license:asl2.0))) +(define-public ocaml-ppx-stable-witness + (package + (name "ocaml-ppx-stable-witness") + (version "0.16.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/ppx_stable_witness") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ppmazy1vw0j44z1p60ln6fddz414zmyrqkpi54w6cr93giqsl2v")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-base ocaml-ppxlib)) + (properties `((upstream-name . "ppx_stable_witness"))) + (home-page "https://github.com/janestreet/ppx_stable_witness") + (synopsis "Mark a type as stable across versions") + (description "This ppx extension is used for deriving a witness that a +type is intended to be stable. In this context, stable means that the +serialization format will never change. This allows programs running at +different versions of the code to safely communicate.") + (license license:expat))) + (define-public ocaml-bin-prot (package (name "ocaml-bin-prot") - (version "0.15.0") + (version "0.16.0") (source (origin (method git-fetch) @@ -6375,7 +6893,7 @@ string conversion.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1qfqglscc25wwnjx7byqmjcnjww1msnr8940gyg8h93wdq43fjnh")))) + (base32 "1ybs0152ilgr8sa1hqnc2jj0gbvg855ixl3c5b2pjbnk7blhqnd8")))) (build-system dune-build-system) (propagated-inputs (list ocaml-base @@ -6384,6 +6902,7 @@ string conversion.") ocaml-ppx-fields-conv ocaml-ppx-optcomp ocaml-ppx-sexp-conv + ocaml-ppx-stable-witness ocaml-ppx-variants-conv)) (properties `((upstream-name . "bin_prot"))) (home-page "https://github.com/janestreet/bin_prot") @@ -6515,7 +7034,7 @@ many values).") (define-public ocaml-ppx-bench (package (name "ocaml-ppx-bench") - (version "0.15.0") + (version "0.16.0") (source (origin (method git-fetch) @@ -6524,7 +7043,7 @@ many values).") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0bc0gbm922417wqisafxh35jslcp7xy1s0h0a1q32rhx0ivxx3g6")))) + (base32 "0pry0vgi1ilwdi5viqydyf9n7y289c17s8wfn16wyzzfr887769m")))) (build-system dune-build-system) (arguments ;; No tests @@ -7007,7 +7526,7 @@ verification tool.") (define-public ocaml-ppx-bin-prot (package (name "ocaml-ppx-bin-prot") - (version "0.15.0") + (version "0.16.0") (source (origin (method git-fetch) @@ -7016,7 +7535,7 @@ verification tool.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1280wsls061fmvmdysjqn3lv4mnkyg400jnjf4jyfr14s33h1ad5")))) + (base32 "091l1gvgbibrqzy9a31vz03wzfs7z5zmk5ldl5yvg742x7idmmwj")))) (build-system dune-build-system) (arguments ;; Cyclic dependency with ocaml-ppx-jane @@ -7664,7 +8183,7 @@ combinators.") (define-public ocaml-bisect-ppx (package (name "ocaml-bisect-ppx") - (version "2.8.1") + (version "2.8.3") (source (origin (method git-fetch) @@ -7674,7 +8193,7 @@ combinators.") (file-name (git-file-name name version)) (sha256 (base32 - "0562rwwnhqlf5alxl1wd1n0xs0k4aamxafrh8bbmh5yl3i5rxrx4")))) + "1albx01qvr4fax4wkdmy0dd21q0fd9ixsgsvnr1z32ngj9nyi9fy")))) (build-system dune-build-system) (propagated-inputs (list ocaml-ppxlib ocaml-cmdliner)) @@ -8105,7 +8624,7 @@ client chooses the concrete timeline.") (propagated-inputs (list ocaml-xmlm)) (native-inputs - (list opam ocaml-findlib ocamlbuild ocaml-topkg)) + (list opam-installer ocaml-findlib ocamlbuild ocaml-topkg)) (home-page "https://erratique.ch/software/uucd") (synopsis "Unicode character database decoder for OCaml") (description "Uucd is an OCaml module to decode the data of the Unicode @@ -8133,7 +8652,7 @@ representations can be extracted.") (modify-phases %standard-phases (delete 'configure)))) (native-inputs - (list opam + (list opam-installer ocaml-findlib ocamlbuild ocaml-topkg @@ -8167,7 +8686,7 @@ selection of character properties of the Unicode character database.") (propagated-inputs (list ocaml-uucp ocaml-uutf ocaml-cmdliner)) (native-inputs - (list opam ocaml-findlib ocamlbuild ocaml-topkg)) + (list opam-installer ocaml-findlib ocamlbuild ocaml-topkg)) (home-page "https://erratique.ch/software/uuseg") (synopsis "Unicode text segmentation for OCaml") (description "Uuseg is an OCaml library for segmenting Unicode text. It @@ -8628,8 +9147,7 @@ browsers and Node.js.") (invoke "./build.sh"))) ;; XXX: The tests are already run in the build.sh script. (delete 'check)))) - (native-inputs - `(("opam" ,opam))) + (native-inputs (list opam-installer)) (home-page "https://github.com/stedolan/ocaml-afl-persistent") (synopsis "Use afl-fuzz in persistent mode") (description |