From 77ca156ab2b3a89b2e15d9de4912ad8e022c2c78 Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:03 +0100 Subject: gnu: Remove ocaml-js-build-tools. The package is deprecated and no longer maintained. It is recommended to use dune instead. * gnu/packages/ocaml.xyz (ocaml-js-build-tools, janestreet-origin) (janestreet-arguments): Remove variables. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 65 +------------------------------------------------- 1 file changed, 1 insertion(+), 64 deletions(-) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index c4900b6214..64c8633af3 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2020 Marius Bakke ;;; Copyright © 2020 Simon Tournier ;;; Copyright © 2020 divoplade +;;; Copyright © 2020 pukkamustard ;;; ;;; This file is part of GNU Guix. ;;; @@ -93,47 +94,6 @@ (number->string file-number) "/" name "-" version ".tar.gz")) -;; Janestreet packages are found in a similar way and all need the same patch. -(define (janestreet-origin name version hash) - (origin (method url-fetch) - (uri (string-append "https://ocaml.janestreet.com/ocaml-core/" - (version-major+minor version) "/files/" - name "-" version ".tar.gz")) - (sha256 (base32 hash)) - (modules '((guix build utils))) - (snippet - (let ((pattern (string-append "lib/" name))) - `(begin - ;; install.ml contains an invalid reference to the ppx file and - ;; propagates this error to the generated META file. It - ;; looks for it in the "lib" directory, but it is installed in - ;; "lib/ocaml/site-lib/package". This substitute does not change - ;; this file for non ppx packages. - (substitute* "install.ml" - ((,pattern) (string-append "lib/ocaml/site-lib/" ,name))) - ;; The standard Makefile would try to install janestreet modules - ;; in OCaml's directory in the store, which is read-only. - (substitute* "Makefile" - (("--prefix") - "--libdir $(LIBDIR) --prefix")) - #t))))) - -;; They also require almost the same set of arguments -(define janestreet-arguments - `(#:use-make? #t - #:make-flags - (list (string-append "CONFIGUREFLAGS=--prefix " - (assoc-ref %outputs "out") - " --enable-tests") - (string-append "LIBDIR=" - (assoc-ref %outputs "out") - "/lib/ocaml/site-lib") - ;; for ocaml-bin-prot, otherwise ignored - (string-append "OCAML_TOPLEVEL_PATH=" - (assoc-ref %build-inputs "findlib") - "/lib/ocaml/site-lib")) - #:phases (modify-phases %standard-phases (delete 'configure)))) - (define-public ocaml-4.11 (package (name "ocaml") @@ -2716,29 +2676,6 @@ system in your OCaml projects. It helps to create standard entry points in your build system and allows external tools to analyse your project easily.") (license license:lgpl2.1+))) ; with ocaml static compilation exception -(define-public ocaml-js-build-tools - (package - (name "ocaml-js-build-tools") - (version "113.33.06") - (source (janestreet-origin "js-build-tools" version - "0r8z4fz8iy5y6hkdlkpwf6rk4qigcr3dzyv35585xgg2ahf12zy6")) - (native-inputs - `(("oasis" ,ocaml-oasis) - ("ocamlbuild" ,ocamlbuild) - ("opam" ,opam))) - (build-system ocaml-build-system) - (arguments janestreet-arguments) - (home-page "https://github.com/janestreet/js-build-tools") - (synopsis "Collection of tools to help building Jane Street Packages") - (description "This package contains tools to help building Jane Street -packages, but can be used for other purposes. It contains: -@enumerate -@item an @command{oasis2opam-install} tool to produce a @file{.install} file -from the oasis build log -@item a @code{js_build_tools} ocamlbuild plugin with various goodies. -@end enumerate") - (license license:asl2.0))) - (define-public ocaml-cppo (package (name "ocaml-cppo") -- cgit v1.2.3 From adb30e517bb908eb395825bec9113881997d5060 Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:04 +0100 Subject: gnu: Add ocaml-sexplib0. * gnu/packages/ocaml.scm (ocaml-sexplib0): New variable. (ocaml4.07-sexplib0): Inherit from ocaml-sexplib0. (janestreet-origin): New variable. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 60 +++++++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 25 deletions(-) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 64c8633af3..acbdb33f2e 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -94,6 +94,14 @@ (number->string file-number) "/" name "-" version ".tar.gz")) +(define (janestreet-origin name version hash) + (origin (method url-fetch) + (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" + (version-major+minor version) "/files/" + name "-v" (version-major+minor+point version) + ".tar.gz")) + (sha256 (base32 hash)))) + (define-public ocaml-4.11 (package (name "ocaml") @@ -2918,7 +2926,7 @@ JSON.") ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv))) (propagated-inputs `(("ocaml-re" ,(package-with-ocaml4.07 ocaml-re)) - ("ocaml-sexplib0" ,ocaml4.07-sexplib0) + ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)) ("ocaml-stringext" ,(package-with-ocaml4.07 ocaml-stringext)))) (home-page "https://github.com/mirage/ocaml-uri") (synopsis "RFC3986 URI/URL parsing library") @@ -3649,7 +3657,7 @@ syntax checking on dedukti files.") ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) ("ocaml-compiler-libs" ,ocaml4.07-compiler-libs) - ("ocaml-sexplib0" ,ocaml4.07-sexplib0) + ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)) ("ocaml-stdio" ,ocaml4.07-stdio) ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) (properties `((upstream-name . "ppx_inline_test"))) @@ -4028,33 +4036,35 @@ an arbitrary number of processes. Cache coherence protocols and mutual exclusion algorithms are typical examples of such systems.") (license license:asl2.0))) -(define-public ocaml4.07-sexplib0 +(define-public ocaml-sexplib0 (package - (name "ocaml4.07-sexplib0") - (version "0.11.0") + (name "ocaml-sexplib0") + (version "0.14.0") (home-page "https://github.com/janestreet/sexplib0") (source - (origin - (method git-fetch) - (uri (git-reference - (url (string-append home-page ".git")) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "07v3ggyss7xhfv14bjk1n87sr42iqwj4cgjiv2lcdfkqk49i2bmi")))) + (janestreet-origin "sexplib0" version + "0adrc0r1vvvr41dcpj8jwkzh1dfgqf0mks9xlnnskqfm3a51iavg")) (build-system dune-build-system) - (arguments - `(#:tests? #f ;no tests - #:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) + (arguments `(#:tests? #f)) ;no tests + (properties `((ocaml4.07-variant . ,(delay ocaml4.07-sexplib0)))) (synopsis "Library containing the definition of S-expressions and some base converters") (description "Part of Jane Street's Core library The Core suite of libraries is an industrial strength alternative to OCaml's standard library that was developed by Jane Street, the largest industrial user of OCaml.") -(license license:expat))) + (license license:expat))) + +(define-public ocaml4.07-sexplib0 + (package-with-ocaml4.07 + (package + (inherit ocaml-sexplib0) + (name "ocaml-sexplib0") + (version "0.11.0") + (source + (janestreet-origin "sexplib0" version + "1p06p2s7p9xsjn0z9qicniv1ai54d8sj11k8j633di2mm7jzxpin")) + (arguments `(#:tests? #f)) ; no tests + (properties '())))) (define-public ocaml4.07-parsexp (package @@ -4077,7 +4087,7 @@ that was developed by Jane Street, the largest industrial user of OCaml.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (inputs - `(("ocaml-sexplib0" ,ocaml4.07-sexplib0))) + `(("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)))) (synopsis "S-expression parsing library") (description "This library provides generic parsers for parsing S-expressions from @@ -4129,7 +4139,7 @@ parsexp_io.") (propagated-inputs `(("ocaml-num" ,(package-with-ocaml4.07 ocaml-num)) ("ocaml-parsexp" ,ocaml4.07-parsexp) - ("ocaml-sexplib0" ,ocaml4.07-sexplib0))) + ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)))) (synopsis "Library for serializing OCaml values to and from S-expressions") (description @@ -4154,7 +4164,7 @@ functionality for parsing and pretty-printing s-expressions.") "0j6xb4265jr41vw4fjzak6yr8s30qrnzapnc6rl1dxy8bjai0nir")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-sexplib0" ,ocaml4.07-sexplib0))) + `(("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)))) (arguments `(#:phases (modify-phases %standard-phases @@ -4225,7 +4235,7 @@ is now @code{Ocaml_common.Ast_helper}.") (build-system dune-build-system) (propagated-inputs `(("ocaml-base" ,ocaml4.07-base) - ("ocaml-sexplib0" ,ocaml4.07-sexplib0))) + ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)))) (arguments `(#:tests? #f ;no tests #:ocaml ,ocaml-4.07 @@ -4289,7 +4299,7 @@ as part of the same ocaml-migrate-parsetree driver.") ("ocaml-ppx-derivers" ,(package-with-ocaml4.07 ocaml-ppx-derivers)) ("ocaml-stdio" ,ocaml4.07-stdio) ("ocaml-result" ,(package-with-ocaml4.07 ocaml-result)) - ("ocaml-sexplib0" ,ocaml4.07-sexplib0))) + ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)))) (arguments `(#:phases (modify-phases %standard-phases -- cgit v1.2.3 From 55c2851a19af470a19bdaf1539c161bf63a8465a Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:05 +0100 Subject: gnu: Add ocaml-base. * gnu/packages/ocaml.scm (ocaml-base): New variable. (ocaml4.07-base): Inherit from ocaml-base. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 137 +++++++++++++++++++++++++++---------------------- 1 file changed, 75 insertions(+), 62 deletions(-) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index acbdb33f2e..762784a0dd 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -1608,7 +1608,7 @@ library.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (native-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-stdio" ,ocaml4.07-stdio) ("pkg-config" ,pkg-config))) (inputs @@ -2561,7 +2561,7 @@ hierarchy of modules.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (native-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("pcre:bin" ,pcre "bin"))) (propagated-inputs `(("pcre" ,pcre))) (home-page "https://mmottl.github.io/pcre-ocaml") @@ -3653,7 +3653,7 @@ syntax checking on dedukti files.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) ("ocaml-compiler-libs" ,ocaml4.07-compiler-libs) @@ -3947,7 +3947,7 @@ Atom.") (inputs `(("gsl" ,gsl))) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-stdio" ,ocaml4.07-stdio))) (home-page "https://mmottl.github.io/gsl-ocaml") (synopsis "Bindings to the GNU Scientific Library") @@ -4147,38 +4147,22 @@ parsexp_io.") functionality for parsing and pretty-printing s-expressions.") (license license:expat))) -(define-public ocaml4.07-base +(define-public ocaml-base (package - (name "ocaml4.07-base") - (version "0.11.1") + (name "ocaml-base") + (version "0.14.0") (home-page "https://github.com/janestreet/base") (source - (origin - (method git-fetch) - (uri (git-reference - (url (string-append home-page ".git")) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0j6xb4265jr41vw4fjzak6yr8s30qrnzapnc6rl1dxy8bjai0nir")))) + (janestreet-origin "base" version + "1rkdhsgbcv0a8p29mwvpd2ldz8cjk97pixl43izm54wyin4lp778")) (build-system dune-build-system) (propagated-inputs - `(("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)))) - (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)) - (synopsis - "Full standard library replacement for OCaml") - (description - "Base is a complete and portable alternative to the OCaml standard + `(("ocaml-sexplib0" ,ocaml-sexplib0))) + (properties `((ocaml4.07-variant . ,(delay ocaml4.07-base)))) + (synopsis + "Full standard library replacement for OCaml") + (description + "Base is a complete and portable alternative to the OCaml standard library. It provides all standard functionalities one would expect from a language standard library. It uses consistent conventions across all of its module. @@ -4187,7 +4171,36 @@ Base aims to be usable in any context. As a result system dependent features such as I/O are not offered by Base. They are instead provided by companion libraries such as @url{https://github.com/janestreet/stdio, ocaml-stdio}.") - (license license:expat))) + (license license:expat))) + +(define-public ocaml4.07-base + (package-with-ocaml4.07 + (package + (inherit ocaml-base) + (name "ocaml-base") + (version "0.11.1") + (source + (origin + ;; version 0.11.1 is not released on ocaml.janestreet.org. + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/base.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (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 ocaml4.07-compiler-libs (package @@ -4234,7 +4247,7 @@ is now @code{Ocaml_common.Ast_helper}.") "1facajqhvq34g2wrg368y0ajxd6lrj5b3lyzyj0jhdmraxajjcwn")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)))) (arguments `(#:tests? #f ;no tests @@ -4292,7 +4305,7 @@ as part of the same ocaml-migrate-parsetree driver.") "0my9x7sxb329h0lzshppdaawiyfbaw6g5f41yiy7bhl071rnlvbv")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-compiler-libs" ,ocaml4.07-compiler-libs) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) @@ -4355,7 +4368,7 @@ OCaml AST in the OCaml syntax; "06bq4m1bsm4jlx4g7wh5m99qky7xm4c2g52kaz6pv25hdn5agi2m")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) @@ -4394,7 +4407,7 @@ by making sure that you only compare comparable values.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) @@ -4426,7 +4439,7 @@ of a record and create new record values.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) @@ -4451,7 +4464,7 @@ standard library.") "07zrd3qky2ppbfl55gpm90rvqa5860xgwcsvihrjmkrw6d0jirkc")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-fieldslib" ,ocaml4.07-fieldslib) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) @@ -4484,7 +4497,7 @@ new record values.") "0pqwnqy1xp309wvdcaax4lg02yk64lq2w03mbgfvf6ps5ry4gis9")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) @@ -4514,7 +4527,7 @@ definitions.") "1yc0gsds5m2nv39zga8nnrca2n75rkqy5dz4xj1635ybz20hhbjd")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-variantslib" ,ocaml4.07-variantslib) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) @@ -4547,7 +4560,7 @@ variant types.") "11b73smf3g3bpd9lg014pr4rx285nk9mnk6g6464ph51jv0sqzhj")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) @@ -4577,7 +4590,7 @@ string conversion.") "1rsd91gx36prj4whi76nsiz1bzpgal9nzyw3pxdz1alv4ilk2il6")))) (build-system dune-build-system) (inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-ppx-compare" ,ocaml4.07-ppx-compare) ("ocaml-ppx-custom-printf" ,ocaml4.07-ppx-custom-printf) ("ocaml-ppx-fields-conv" ,ocaml4.07-ppx-fields-conv) @@ -4646,7 +4659,7 @@ storage of large amounts of data.") "1p0ic6aijxlrdggpmycj12q3cy9xksbq2vq727215maz4snvlf5p")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-ppx-compare" ,ocaml4.07-ppx-compare) ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) ("ocaml-migrate-parsetree" @@ -4683,7 +4696,7 @@ hash functions from type exrpessions and definitions.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) @@ -4745,7 +4758,7 @@ many values).") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) @@ -4774,7 +4787,7 @@ many values).") #:ocaml ,ocaml-4.07 #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) - (propagated-inputs `(("ocaml-base" ,ocaml4.07-base))) + (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)))) (home-page "https://github.com/janestreet/typerep") (synopsis "Typerep is a library for runtime types") (description "Typerep is a library for runtime types.") @@ -4798,7 +4811,7 @@ many values).") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-ppx-here" ,ocaml4.07-ppx-here) ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) ("ocaml-migrate-parsetree" @@ -4829,7 +4842,7 @@ ocaml values.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-ppx-here" ,ocaml4.07-ppx-here) ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) ("ocaml-migrate-parsetree" @@ -4894,7 +4907,7 @@ context such as function arguments.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) @@ -4924,7 +4937,7 @@ else expression.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-stdio" ,ocaml4.07-stdio) ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) (properties `((upstream-name . "ppx_optcomp"))) @@ -4953,7 +4966,7 @@ size, the version of the compiler, ...") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) @@ -4982,7 +4995,7 @@ match expressions, and if expressions.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-ppx-here" ,ocaml4.07-ppx-here) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) @@ -5012,7 +5025,7 @@ position.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-ppx-compare" ,ocaml4.07-ppx-compare) ("ocaml-ppx-here" ,ocaml4.07-ppx-here) ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) @@ -5045,7 +5058,7 @@ useful errors on failure.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-ppx-assert" ,ocaml4.07-ppx-assert) ("ocaml-ppx-compare" ,ocaml4.07-ppx-compare) ("ocaml-ppx-custom-printf" ,ocaml4.07-ppx-custom-printf) @@ -5089,7 +5102,7 @@ to denote the expected output.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) ("ocaml-octavius" ,(package-with-ocaml4.07 ocaml-octavius)) @@ -5122,7 +5135,7 @@ packages.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-typerep" ,ocaml4.07-typerep) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) @@ -5191,7 +5204,7 @@ verification tool.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-bin-prot" ,ocaml4.07-bin-prot) ("ocaml-ppx-here" ,ocaml4.07-ppx-here) ("ocaml-migrate-parsetree" @@ -5269,7 +5282,7 @@ driver including all standard Jane Street ppx rewriters.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-ppx-jane" ,ocaml4.07-ppx-jane) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)))) @@ -5329,7 +5342,7 @@ various Jane Street packages.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-stdio" ,ocaml4.07-stdio))) (home-page "https://github.com/janestreet/configurator") (synopsis "Helper library for gathering system configuration") @@ -5416,7 +5429,7 @@ thousands of times faster than fork. #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-configurator" ,ocaml4.07-configurator) ("ocaml-core-kernel" ,ocaml4.07-core-kernel) ("ocaml-ppx-assert" ,ocaml4.07-ppx-assert) @@ -5456,7 +5469,7 @@ standard library that was developed by Jane Street.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,ocaml4.07-base) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-bin-prot" ,ocaml4.07-bin-prot) ("ocaml-configurator" ,ocaml4.07-configurator) ("ocaml-fieldslib" ,ocaml4.07-fieldslib) @@ -5716,7 +5729,7 @@ library FFTW.") (native-inputs `(("openblas" ,openblas) ("lapack" ,lapack) - ("ocaml-base" ,ocaml4.07-base) + ("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-stdio" ,ocaml4.07-stdio))) (home-page "https://mmottl.github.io/lacaml/") (synopsis -- cgit v1.2.3 From 662307c30a462d98cb1b16a6c5de208d18adce71 Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:06 +0100 Subject: gnu: Add ocaml-parsexp. * gnu/packages/ocaml.scm (ocaml-parsexp): New variable. (ocaml4.07-parsexp): Inherit from ocaml-parsexp. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 762784a0dd..2ba1dd90e5 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -4066,28 +4066,19 @@ that was developed by Jane Street, the largest industrial user of OCaml.") (arguments `(#:tests? #f)) ; no tests (properties '())))) -(define-public ocaml4.07-parsexp +(define-public ocaml-parsexp (package - (name "ocaml4.07-parsexp") - (version "0.11.0") + (name "ocaml-parsexp") + (version "0.14.0") (home-page "https://github.com/janestreet/parsexp") (source - (origin - (method git-fetch) - (uri (git-reference - (url (string-append home-page ".git")) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1nyq23s5igd8cf3n4qxprjvhbmb6ighb3fy5mw7hxl0mdgsw5fvz")))) + (janestreet-origin "parsexp" version + "158znj19dvfdcwsgzs3rdhxpj1g4aw0d4nkfr8c05bahf0lnshlb")) (build-system dune-build-system) - (arguments - `(#:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) (inputs - `(("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)))) + `(("ocaml-sexplib0" ,ocaml-sexplib0) + ("ocaml-base" ,ocaml-base))) + (properties `((ocaml4.07-variant . ,(delay ocaml4.07-parsexp)))) (synopsis "S-expression parsing library") (description "This library provides generic parsers for parsing S-expressions from @@ -4116,6 +4107,17 @@ s-expressions from files or other external sources, you should use parsexp_io.") (license license:expat))) +(define-public ocaml4.07-parsexp + (package-with-ocaml4.07 + (package + (inherit ocaml-parsexp) + (name "ocaml-parsexp") + (version "0.11.0") + (source + (janestreet-origin "parsexp" version + "11a30zkfgbi6pb4whq22k1zc8ghdp9bwxl5s5cdlmx1z8s4yxsf0")) + (properties '())))) + (define-public ocaml4.07-sexplib (package (name "ocaml4.07-sexplib") @@ -4138,7 +4140,7 @@ parsexp_io.") #:dune ,ocaml4.07-dune)) (propagated-inputs `(("ocaml-num" ,(package-with-ocaml4.07 ocaml-num)) - ("ocaml-parsexp" ,ocaml4.07-parsexp) + ("ocaml-parsexp" ,(package-with-ocaml4.07 ocaml-parsexp)) ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)))) (synopsis "Library for serializing OCaml values to and from S-expressions") -- cgit v1.2.3 From 5de771a49a52ff56ddaec4a911cb44b9d41d31fa Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:07 +0100 Subject: gnu: Add ocaml-sexplib. * gnu/packages/ocaml.scm (ocaml-sexplib): New variable. (ocaml4.07-sexplib): Inherit from ocaml-sexplib. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 49 +++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 24 deletions(-) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 2ba1dd90e5..b12a795e47 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2887,7 +2887,7 @@ writing to these structures, and they are accessed via the Bigarray module.") (propagated-inputs `(("ocaml-hex" ,(package-with-ocaml4.07 ocaml-hex)) ("ocaml-jsonm" ,(package-with-ocaml4.07 ocaml-jsonm)) - ("ocaml-sexplib" ,ocaml4.07-sexplib))) + ("ocaml-sexplib" ,(package-with-ocaml4.07 ocaml-sexplib)))) (home-page "https://github.com/mirage/ezjsonm/") (synopsis "Read and write JSON data") (description "Ezjsonm provides more convenient (but far less flexible) input @@ -4118,37 +4118,38 @@ parsexp_io.") "11a30zkfgbi6pb4whq22k1zc8ghdp9bwxl5s5cdlmx1z8s4yxsf0")) (properties '())))) -(define-public ocaml4.07-sexplib +(define-public ocaml-sexplib (package - (name "ocaml4.07-sexplib") - (version "0.11.0") + (name "ocaml-sexplib") + (version "0.14.0") (home-page "https://github.com/janestreet/sexplib") (source - (origin - (method git-fetch) - (uri (git-reference - (url (string-append home-page ".git")) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1qfl0m04rpcjvc4yw1hzh6r16jpwmap0sa9ax6zjji67dz4szpyb")))) + (janestreet-origin "sexplib" version + "12rlnc6fcrjfdn3gs2agi418sj54ighhs6dfll37zcv7mgywblm2")) (build-system dune-build-system) - (arguments - `(#:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-num" ,(package-with-ocaml4.07 ocaml-num)) - ("ocaml-parsexp" ,(package-with-ocaml4.07 ocaml-parsexp)) - ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)))) + `(("ocaml-base" ,ocaml-base) + ("ocaml-num" ,ocaml-num) + ("ocaml-parsexp" ,ocaml-parsexp) + ("ocaml-sexplib0" ,ocaml-sexplib0))) + (properties `((ocaml4.07-variant . ,(delay ocaml4.07-sexplib)))) (synopsis "Library for serializing OCaml values to and from S-expressions") (description - "This package is part of Jane Street's Core library. Sexplib contains + "This package is part of Jane Street's Core library. Sexplib contains functionality for parsing and pretty-printing s-expressions.") (license license:expat))) +(define-public ocaml4.07-sexplib + (package-with-ocaml4.07 + (package + (inherit ocaml-sexplib) + (version "0.11.0") + (source + (janestreet-origin "sexplib" version + "0ksx62zsxhz8xmdrsn41n2hbc2qbyh3bxxc6946xisvgwh42h3q3")) + (properties '())))) + (define-public ocaml-base (package (name "ocaml-base") @@ -5436,7 +5437,7 @@ thousands of times faster than fork. ("ocaml-core-kernel" ,ocaml4.07-core-kernel) ("ocaml-ppx-assert" ,ocaml4.07-ppx-assert) ("ocaml-ppx-jane" ,ocaml4.07-ppx-jane) - ("ocaml-sexplib" ,ocaml4.07-sexplib) + ("ocaml-sexplib" ,(package-with-ocaml4.07 ocaml-sexplib)) ("ocaml-spawn" ,ocaml4.07-spawn) ("ocaml-stdio" ,ocaml4.07-stdio) ("ocaml-migrate-parsetree" @@ -5483,7 +5484,7 @@ standard library that was developed by Jane Street.") ("ocaml-ppx-jane" ,ocaml4.07-ppx-jane) ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) ("ocaml-ppx-sexp-message" ,ocaml4.07-ppx-sexp-message) - ("ocaml-sexplib" ,ocaml4.07-sexplib) + ("ocaml-sexplib" ,(package-with-ocaml4.07 ocaml-sexplib)) ("ocaml-splittable-random" ,ocaml4.07-splittable-random) ("ocaml-stdio" ,ocaml4.07-stdio) ("ocaml-typerep" ,ocaml4.07-typerep) @@ -5650,7 +5651,7 @@ then run the Bisect_ppx report tool on the generated visitation files.") (inputs `(("ocaml-alcotest" ,(package-with-ocaml4.07 ocaml-alcotest)) ("ocaml-markup" ,(package-with-ocaml4.07 ocaml-markup)) - ("ocaml-sexplib" ,ocaml4.07-sexplib) + ("ocaml-sexplib" ,(package-with-ocaml4.07 ocaml-sexplib)) ("ocaml-re" ,(package-with-ocaml4.07 ocaml-re)) ("ocaml-uutf" ,(package-with-ocaml4.07 ocaml-uutf)))) (native-inputs -- cgit v1.2.3 From 349699bbc21c9946486b0b41d8b2e24192bc9b7a Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:08 +0100 Subject: gnu: Add ocaml-ounit2. * gnu/packages/ocaml.xyz (ocaml-ounit2): New variable. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index b12a795e47..d10b14bf37 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -982,6 +982,32 @@ compilers that can directly deal with packages.") `(("m4" ,m4) ("ocaml" ,ocaml-4.09))))) +(define-public ocaml-ounit2 + (package + (name "ocaml-ounit2") + (version "2.2.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gildor478/ounit.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gxjw1bhmjcjzri6x6psqrkbbyq678b69bqfl9i1zswp7cj2lryg")))) + (build-system dune-build-system) + (inputs + ;; XXX Should libev be a propagated-input of ocaml-lwt? + `(("libev" ,libev))) + (propagated-inputs + `(("lwt" ,ocaml-lwt) + ("ocaml-stdlib-shims" ,ocaml-stdlib-shims))) + (home-page "https://github.com/gildor478/ounit") + (synopsis "Unit testing framework for OCaml") + (description "OUnit2 is a unit testing framework for OCaml. It is similar +to JUnit and other XUnit testing frameworks.") + (license license:expat))) + ;; note that some tests may hang for no obvious reason. (define-public ocaml-ounit (package -- cgit v1.2.3 From 1a5bca9b3b143b3d9f234c95d8d2c43ca637de17 Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:09 +0100 Subject: gnu: ocaml-tyxml: Update to 4.4.0. * gnu/packages/ocaml.scm (ocaml-tyxml): Update to 4.4.0. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index d10b14bf37..273dc2572c 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -5582,7 +5582,7 @@ stream, and convert everything to UTF-8.") (define-public ocaml-tyxml (package (name "ocaml-tyxml") - (version "4.3.0") + (version "4.4.0") (source (origin (method git-fetch) @@ -5592,7 +5592,7 @@ stream, and convert everything to UTF-8.") (file-name (git-file-name name version)) (sha256 (base32 - "0wv19xipkj8l2sks1h53105ywbjwk7q93fb7b8al4a2g9wr109c0")))) + "1hw4phyadcfgywgh5sj87i76gp56qwxzwlcpfdwjbf6ggag9clmd")))) (build-system dune-build-system) (inputs `(("ocaml-re" ,ocaml-re) -- cgit v1.2.3 From ad6a057724b1f376fdd747de953561cee72720a0 Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:10 +0100 Subject: gnu: ocaml-markup: Update to 1.0.0. * gnu/packages/ocaml.scm (ocaml-markup): Update to 1.0.0. (ocaml-markup0.8.0): New variable. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 273dc2572c..e3dca82e47 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -5533,7 +5533,7 @@ the full Core is not available, such as in Javascript.") (define-public ocaml-markup (package (name "ocaml-markup") - (version "0.8.2") + (version "1.0.0") (home-page "https://github.com/aantron/markup.ml") (source (origin @@ -5544,7 +5544,7 @@ the full Core is not available, such as in Javascript.") (file-name (git-file-name name version)) (sha256 (base32 - "13zcrwzjmifniv3bvjbkd2ah8wwa3ld75bxh1d8hrzdvfxzh9szn")))) + "09hkrf9pw6hpb9j06p5bddklpnjwdjpqza3bx2179l970yl67an9")))) (build-system dune-build-system) (arguments `(#:package "markup")) @@ -5556,8 +5556,10 @@ the full Core is not available, such as in Javascript.") ("ocaml-uutf" ,ocaml-uutf) ("ocaml-lwt" ,ocaml-lwt))) (native-inputs - `(("ocaml-ounit" ,ocaml-ounit) + `(("ocaml-ounit2" ,ocaml-ounit2) ("pkg-config" ,pkg-config))) + (properties + `((ocaml4.07-variant . ,(delay (package-with-ocaml4.07 ocaml-markup0.8.0))))) (synopsis "Error-recovering functional HTML5 and XML parsers and writers") (description "Markup.ml provides an HTML parser and an XML parser. The parsers are wrapped in a simple interface: they are functions that transform @@ -5579,6 +5581,26 @@ a single pass. They automatically detect the character encoding of the input stream, and convert everything to UTF-8.") (license license:bsd-3))) +;; ocaml-markup 1.0.0 can not be built with old version of dune used in +;; package-with-ocaml4.07 +(define-public ocaml-markup0.8.0 + (package + (inherit ocaml-markup) + (name "ocaml-markup") + (version "0.8.0") + (home-page "https://github.com/aantron/markup.ml") + (source + (origin + (method git-fetch) + (uri (git-reference + (url (string-append home-page ".git")) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0aif4abvfmi9xc1pvw5n5rbm6rzkkpsxyvdn0lanr33rjpvkwdlm")))) + (properties '()))) + (define-public ocaml-tyxml (package (name "ocaml-tyxml") -- cgit v1.2.3 From 9e02c4acb3e73e9d426d9ec09ffbcb7f047b46db Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:11 +0100 Subject: gnu: Add ocaml-odoc. * gnu/packages/ocaml.scm (ocaml-odoc): New variable. (ocaml4.07-odoc): Inherit from ocaml-odoc and update to 1.5.1. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 60 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 21 deletions(-) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index e3dca82e47..19f91e5091 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -72,6 +72,7 @@ #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages virtualization) + #:use-module (gnu packages web) #:use-module (gnu packages web-browsers) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -2186,7 +2187,7 @@ representation of the data.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-odoc" ,ocaml4.07-odoc))) + `(("ocaml-odoc" ,(package-with-ocaml4.07 ocaml4.07-odoc)))) (native-inputs `(("ocaml-qtest" ,(package-with-ocaml4.07 ocaml-qtest)) ("ocaml-qcheck" ,(package-with-ocaml4.07 ocaml-qcheck)))) @@ -5678,10 +5679,10 @@ Usage is simple - add package bisect_ppx when building tests, run your tests, then run the Bisect_ppx report tool on the generated visitation files.") (license license:mpl2.0))) -(define-public ocaml4.07-odoc +(define-public ocaml-odoc (package - (name "ocaml4.07-odoc") - (version "1.4.2") + (name "ocaml-odoc") + (version "1.5.2") (source (origin (method git-fetch) @@ -5690,26 +5691,24 @@ then run the Bisect_ppx report tool on the generated visitation files.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0rvhx139jx6wmlfz355mja6mk03x4swq1xxvk5ky6jzhalq3cf5i")))) + (base32 "0fqfyz48q7ss5bc4c5phmp4s3ka3vc08b8gfk8fvyryvb4bq27jm")))) (build-system dune-build-system) - (arguments - `(#:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) (inputs - `(("ocaml-alcotest" ,(package-with-ocaml4.07 ocaml-alcotest)) - ("ocaml-markup" ,(package-with-ocaml4.07 ocaml-markup)) - ("ocaml-sexplib" ,(package-with-ocaml4.07 ocaml-sexplib)) - ("ocaml-re" ,(package-with-ocaml4.07 ocaml-re)) - ("ocaml-uutf" ,(package-with-ocaml4.07 ocaml-uutf)))) + `(("ocaml-alcotest" ,ocaml-alcotest) + ("ocaml-markup" ,ocaml-markup) + ("ocaml-sexplib" ,ocaml-sexplib) + ("ocaml-re" ,ocaml-re) + ("ocaml-uutf" ,ocaml-uutf))) (native-inputs - `(("ocaml-astring" ,(package-with-ocaml4.07 ocaml-astring)) - ("ocaml-cmdliner" ,(package-with-ocaml4.07 ocaml-cmdliner)) - ("ocaml-cppo" ,(package-with-ocaml4.07 ocaml-cppo)) - ("ocaml-fpath" ,(package-with-ocaml4.07 ocaml-fpath)) - ("ocaml-result" ,(package-with-ocaml4.07 ocaml-result)) - ("ocaml-tyxml" ,(package-with-ocaml4.07 ocaml-tyxml)) - ("ocaml-bisect-ppx" ,(package-with-ocaml4.07 ocaml-bisect-ppx)))) + `(("ocaml-astring" ,ocaml-astring) + ("ocaml-cmdliner" ,ocaml-cmdliner) + ("ocaml-cppo" ,ocaml-cppo) + ("ocaml-fpath" ,ocaml-fpath) + ("ocaml-result" ,ocaml-result) + ("ocaml-tyxml" ,ocaml-tyxml) + ("ocaml-bisect-ppx" ,ocaml-bisect-ppx) + ("tidy-html" ,tidy-html))) + (properties `((ocaml4.07-variant . ,(delay ocaml4.07-odoc)))) (home-page "https://github.com/ocaml/odoc") (synopsis "OCaml documentation generator") (description "Odoc is a documentation generator for OCaml. It reads @@ -5721,6 +5720,25 @@ advantage over ocamldoc is an accurate cross-referencer, which handles the complexity of the OCaml module system.") (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 + (package-with-ocaml4.07 + (package + (inherit ocaml-odoc) + (name "ocaml-odoc") + (version "1.5.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml/odoc") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0z2nisg1vb5xlk41hqw8drvj90v52wli7zvnih6a844cg6xsvvj2")))) + (properties '())))) + (define-public ocaml4.07-fftw3 (package (name "ocaml4.07-fftw3") -- cgit v1.2.3 From c0bfff6acac651a47c04cda3206b8eb345ee5b3c Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:12 +0100 Subject: gnu: Add ocaml-version. * gnu/packages/ocaml.scm (ocaml-version): New variable. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 19f91e5091..2021447a66 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -5845,6 +5845,32 @@ include the X Window System, Quartz, Win32, image buffers, PostScript, PDF, and SVG file output.") (license license:lgpl3+))) +(define-public ocaml-version + (package + (name "ocaml-version") + (version "3.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocurrent/ocaml-version") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "13770mp6adjjbx63zsbh6506dqxz241chw8c3y403sxpw45hnaw6")))) + (build-system dune-build-system) + (arguments `(#:tests? #f)) ; no tests + (home-page + "https://github.com/ocurrent/ocaml-version") + (synopsis + "Manipulate, parse and generate OCaml compiler version strings") + (description + "This library provides facilities to parse version numbers of the OCaml +compiler, and enumerates the various official OCaml releases and configuration +variants.") + (license license:isc))) + (define-public lablgtk3 (package (name "lablgtk") -- cgit v1.2.3 From b13544751f5d93b8d11c9be671131dada531afd2 Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:13 +0100 Subject: gnu: Add ocaml-mdx. * gnu/packages/ocaml.scm (ocaml-mdx): New variable. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 2021447a66..df07aff29f 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -5871,6 +5871,55 @@ compiler, and enumerates the various official OCaml releases and configuration variants.") (license license:isc))) +(define-public ocaml-mdx + (package + (name "ocaml-mdx") + (version "1.7.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/realworldocaml/mdx") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10avyv99xkfqdq3gmq8gps770jpibbfslg97sbhgmp0dpwikz49d")))) + (build-system dune-build-system) + (inputs + `(("ocaml-fmt" ,ocaml-fmt) + ("ocaml-astring" ,ocaml-astring) + ("ocaml-logs" ,ocaml-logs) + ("ocaml-cmdliner" ,ocaml-cmdliner) + ("ocaml-re" ,ocaml-re) + ("ocaml-result" ,ocaml-result) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-odoc" ,ocaml-odoc) + ("ocaml-version" ,ocaml-version))) + (native-inputs + `(("ocaml-cppo" ,ocaml-cppo) + ("ocaml-lwt" ,ocaml-lwt) + ("ocaml-alcotest" ,ocaml-alcotest))) + (home-page + "https://github.com/realworldocaml/mdx") + (synopsis + "Executable code blocks inside markdown files") + (description + "@code{ocaml-mdx} allows to execute code blocks inside markdown files. +There are (currently) two sub-commands, corresponding +to two modes of operations: pre-processing (@code{ocaml-mdx pp}) +and tests (@code{ocaml-mdx test}]). + +The pre-processor mode allows to mix documentation and code, +and to practice @dfn{literate programming} using markdown and OCaml. + +The test mode allows to ensure that shell scripts and OCaml fragments +in the documentation always stays up-to-date. + +@code{ocaml-mdx} is released as two binaries called @code{ocaml-mdx} and +@code{mdx} which are the same, mdx being the deprecated name, kept for now for +compatibility.") + (license license:isc))) + (define-public lablgtk3 (package (name "lablgtk") -- cgit v1.2.3 From f6979a7d9f0cf903113e3beaa606c003084e85c7 Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:14 +0100 Subject: gnu: ocaml-yojson: Make dependencies propagated-inputs. * gnu/packages/ocaml.scm (ocaml-yojson): Make dependencies propagated-inputs. (ocaml4.07-merlin)[inputs]: Remove ocaml-biniou and ocaml-easy-format. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index df07aff29f..c5b845c049 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3858,7 +3858,7 @@ than yojson), with 25-35% space savings.") (build-system dune-build-system) (arguments `(#:test-target ".")) - (inputs + (propagated-inputs `(("ocaml-biniou" ,ocaml-biniou) ("ocaml-easy-format" ,ocaml-easy-format))) (native-inputs @@ -3926,9 +3926,7 @@ format}. @code{craml} is released as a single binary (called @code{craml}).") "15ssgmwdxylbwhld9p1cq8x6kadxyhll5bfyf11dddj6cldna3hb")))) (build-system dune-build-system) (inputs - `(("ocaml-biniou" ,(package-with-ocaml4.07 ocaml-biniou)) - ("ocaml-yojson" ,(package-with-ocaml4.07 ocaml-yojson)) - ("ocaml-easy-format" ,(package-with-ocaml4.07 ocaml-easy-format)))) + `(("ocaml-yojson" ,(package-with-ocaml4.07 ocaml-yojson)))) (native-inputs `(("ocaml-findlib" ,ocaml-findlib))) (arguments -- cgit v1.2.3 From 995685738e0aecfcf6d645334a3d64ac427854af Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:15 +0100 Subject: gnu: Add ocaml-dot-merlin-reader. * gnu/packages/ocaml.scm (ocaml-dot-merlin-reader): New variable. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index c5b845c049..758caa5bc4 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3909,6 +3909,33 @@ Mercurial's @code{https://www.selenic.com/blog/?p=663, unified test format}. @code{craml} is released as a single binary (called @code{craml}).") (license license:isc))) +(define-public ocaml-dot-merlin-reader + (package + (name "ocaml-dot-merlin-reader") + (version "3.4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml/merlin") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0i2nwkdh6cfzmnsdsr8aw86vs8j1k5jkjzrs61b9384wnffdbbmj")))) + (build-system dune-build-system) + (arguments '(#:package "dot-merlin-reader" + #:tests? #f)) ; no tests + (inputs + `(("ocaml-yojson" ,ocaml-yojson) + ("ocaml-csexp" ,ocaml-csexp) + ("ocaml-result" ,ocaml-result))) + (home-page "https://ocaml.github.io/merlin/") + (synopsis "Reads config files for @code{ocaml-merlin}") + (description "@code{ocaml-dot-merlin-reader} is an external reader for +@code{ocaml-merlin} configurations.") + (license license:expat))) + (define-public ocaml4.07-merlin (package (name "ocaml4.07-merlin") -- cgit v1.2.3 From 8b036927a45fb2c1428badabdc3dc0d9d51f7f25 Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Mon, 28 Dec 2020 22:10:16 +0100 Subject: gnu: Add ocaml-merlin. * gnu/packages/ocaml.scm (ocaml-merlin): New variable. (ocaml4.07-merlin): Inherit from ocaml-merlin. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 54 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 13 deletions(-) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 758caa5bc4..2df16e7cd2 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3936,11 +3936,10 @@ format}. @code{craml} is released as a single binary (called @code{craml}).") @code{ocaml-merlin} configurations.") (license license:expat))) -(define-public ocaml4.07-merlin +(define-public ocaml-merlin (package - (name "ocaml4.07-merlin") - (version "3.2.2") - (home-page "https://ocaml.github.io/merlin/") + (name "ocaml-merlin") + (version "3.4.2") (source (origin (method git-fetch) @@ -3950,18 +3949,19 @@ format}. @code{craml} is released as a single binary (called @code{craml}).") (file-name (git-file-name name version)) (sha256 (base32 - "15ssgmwdxylbwhld9p1cq8x6kadxyhll5bfyf11dddj6cldna3hb")))) + "0i2nwkdh6cfzmnsdsr8aw86vs8j1k5jkjzrs61b9384wnffdbbmj")))) (build-system dune-build-system) + (arguments '(#:package "merlin" + #:test-target "tests")) (inputs - `(("ocaml-yojson" ,(package-with-ocaml4.07 ocaml-yojson)))) + `(("ocaml-yojson" ,ocaml-yojson) + ("ocaml-csexp" ,ocaml-csexp) + ("ocaml-result" ,ocaml-result))) (native-inputs - `(("ocaml-findlib" ,ocaml-findlib))) - (arguments - `(#:package "merlin" - #:tests? #f ;; Errors in tests in version 3.2.2 - #:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) + `(("ocaml-dot-merlin-reader" ,ocaml-dot-merlin-reader) ; required for tests + ("ocaml-mdx" ,ocaml-mdx) + ("jq" ,jq))) + (home-page "https://ocaml.github.io/merlin/") (synopsis "Context sensitive completion for OCaml in Vim and Emacs") (description "Merlin is an editor service that provides modern IDE features for OCaml. Emacs and Vim support is provided out-of-the-box. @@ -3969,6 +3969,34 @@ External contributors added support for Visual Studio Code, Sublime Text and Atom.") (license license:expat))) +;; ocaml-merlin 3.4.2 can not be built with old version of dune used in +;; package-with-ocaml4.07 +(define-public ocaml4.07-merlin + (package-with-ocaml4.07 + (package + (inherit ocaml-merlin) + (name "ocaml-merlin") + (version "3.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml/merlin") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "15ssgmwdxylbwhld9p1cq8x6kadxyhll5bfyf11dddj6cldna3hb")))) + (build-system dune-build-system) + (inputs + `(("ocaml-yojson" ,ocaml-yojson))) + (native-inputs + `(("ocaml-findlib" ,ocaml-findlib))) + (arguments + `(#:package "merlin" + ;; Errors in tests in version 3.2.2 + #:tests? #f))))) + (define-public ocaml4.07-gsl (package (name "ocaml4.07-gsl") -- cgit v1.2.3 From b6529e189688ac8bc17c11cf24304fc554f5cb9b Mon Sep 17 00:00:00 2001 From: aecepoglu Date: Mon, 11 Jan 2021 23:55:04 +0300 Subject: ocaml: Add ocaml-ocp-indent. * gnu/packages/ocaml.scm (ocaml-ocp-indent): New variable. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 2df16e7cd2..7528e9d5fe 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2020 Simon Tournier ;;; Copyright © 2020 divoplade ;;; Copyright © 2020 pukkamustard +;;; Copyright © 2021 aecepoglu ;;; ;;; This file is part of GNU Guix. ;;; @@ -2362,6 +2363,44 @@ string values and to directly encode characters in OCaml Buffer.t values.") the JSON data format. It can process JSON text without blocking on IO and without a complete in-memory representation of the data.") (license license:isc))) + +(define-public ocaml-ocp-indent + (package + (name "ocaml-ocp-indent") + (version "1.8.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OCamlPro/ocp-indent") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3")))) + (build-system dune-build-system) + (arguments + `(#:test-target "tests" + #:build-flags (list "--profile=release"))) + (propagated-inputs + `(("ocaml-cmdliner" ,ocaml-cmdliner))) + (home-page "https://www.typerex.org/ocp-indent.html") + (synopsis "Tool to indent OCaml programs") + (description + "Ocp-indent is based on an approximate, tolerant OCaml parser +and a simple stack machine. Presets and configuration options are available, +with the possibility to set them project-wide. It supports the most common +syntax extensions, and it is extensible for others. + +This package includes: + +@itemize +@item An indentor program, callable from the command-line or from within editors, +@item Bindings for popular editors, +@item A library that can be directly used by editor writers, or just for + fault-tolerant and approximate parsing. +@end itemize") + (license license:lgpl2.1))) (define-public ocaml-ocurl (package -- cgit v1.2.3 From 564cbfd99fd9d5bd462b33edb2af071ca3a4a5a1 Mon Sep 17 00:00:00 2001 From: aecepoglu Date: Mon, 11 Jan 2021 23:55:33 +0300 Subject: ocaml: Add ocaml-ocp-index. * gnu/packages/ocaml.scm (ocaml-ocp-index): New variable. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 7528e9d5fe..4294d25efd 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2401,6 +2401,39 @@ This package includes: fault-tolerant and approximate parsing. @end itemize") (license license:lgpl2.1))) + +(define-public ocaml-ocp-index + (package + (name "ocaml-ocp-index") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OCamlPro/ocp-index") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "08r7mxdnxmhff37fw4hmrpjgckgi5kaiiiirwp4rmdl594z0h9c8")))) + (build-system dune-build-system) + (arguments + `(#:package "ocp-index")) + (propagated-inputs + `(("ocaml-ocp-indent" ,ocaml-ocp-indent) + ("ocaml-re" ,ocaml-re) + ("ocaml-cmdliner" ,ocaml-cmdliner))) + (native-inputs + `(("ocaml-cppo" ,ocaml-cppo))) + (home-page "https://www.typerex.org/ocp-index.html") + (synopsis "Lightweight completion and documentation browsing for OCaml libraries") + (description "This package includes only the @code{ocp-index} library +and command-line tool.") + ;; All files in libs/ are GNU lgpl2.1 + ;; For static linking, clause 6 of LGPL is lifted + ;; All other files under GNU gpl3 + (license (list license:gpl3+ + license:lgpl2.1+)))) (define-public ocaml-ocurl (package -- cgit v1.2.3 From e3b71ee6dcb87452192fb4f5df9eeea31f1c1cfd Mon Sep 17 00:00:00 2001 From: aecepoglu Date: Mon, 11 Jan 2021 23:56:10 +0300 Subject: ocaml: Add ocaml-down. * gnu/packages/ocaml.scm (ocaml-down): New variable. Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) (limited to 'gnu/packages/ocaml.scm') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 4294d25efd..8a91a79c36 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -391,6 +391,69 @@ repository-wide uninstallability checks.") ;; with static-linking exception (license license:lgpl2.1+))) +(define-public ocaml-down + (package + (name "ocaml-down") + (version "0.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://erratique.ch/software/down/releases/down-" + version ".tbz")) + (sha256 + (base32 + "1nz2f5j17frgr2vrslcz9klmi6w9sm2vqwwwpi33ngcm3rgmsrlg")))) + (build-system ocaml-build-system) + (arguments + `(#:tests? #f ;no tests + #:phases + (modify-phases %standard-phases + (delete 'configure)) + #:build-flags + (list "build" "--lib-dir" + (string-append (assoc-ref %outputs "out") "/lib/ocaml/site-lib")))) + (native-inputs + `(("ocaml-findlib" ,ocaml-findlib) + ("ocamlbuild" ,ocamlbuild) + ("ocaml-topkg" ,ocaml-topkg) + ("opam" ,opam))) + (home-page "https://erratique.ch/software/down") + (synopsis "OCaml toplevel (REPL) upgrade") + (description "Down is an unintrusive user experience upgrade for the +@command{ocaml} toplevel (REPL). + +Simply load the zero dependency @code{down} library in the @command{ocaml} +toplevel and you get line edition, history, session support and identifier +completion and documentation with @command{ocp-index}. + +Add this to your @file{~/.ocamlinit}: + +@example +#use \"down.top\" +@end example + +You may also need to add this to your @file{~/.ocamlinit} and declare +the environment variable @code{OCAML_TOPLEVEL_PATH}: + +@example +let () = + try Topdirs.dir_directory (Sys.getenv \"OCAML_TOPLEVEL_PATH\") + with Not_found -> () +@end example + +OR + +@example +let () = String.split_on_char ':' (Sys.getenv \"OCAMLPATH\") + |> List.filter (fun x -> Filename.check_suffix x \"/site-lib\") + |> List.map (fun x -> x ^ \"/toplevel\") + (* remove the line below if you don't want to see the text + every time you start the toplevel *) + |> List.map (fun x -> Printf.printf \"adding directory %s\\n\" x; x) + |> List.iter Topdirs.dir_directory;; +@end example") + (license license:isc))) + (define-public ocaml-opam-file-format (package (name "ocaml-opam-file-format") -- cgit v1.2.3