diff options
Diffstat (limited to 'gnu/packages/ocaml.scm')
-rw-r--r-- | gnu/packages/ocaml.scm | 92 |
1 files changed, 63 insertions, 29 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 69d37f37bc..102348a2eb 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3208,50 +3208,36 @@ is used to determine whether the results truly differ.") (define-public ocaml-batteries (package (name "ocaml-batteries") - (version "2.10.0") + (version "3.3.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ocaml-batteries-team/" - "batteries-included/releases/download/v" - version "/batteries-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml-batteries-team/batteries-included") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "08ghw87d56h1a6y1nnh3x2wy9xj25jqfk5sp6ma9nsyd37babb0h")))) + "1h03nkc3vajaijqhj1dy5hw85j2hwwxdkg8rvs2fc00qaf44ad1d")))) (build-system ocaml-build-system) + (propagated-inputs `(("ocaml-num" ,ocaml-num))) (native-inputs `(("ocamlbuild" ,ocamlbuild) - ("qtest" ,ocaml-qtest))) - (propagated-inputs - `(("ocaml-num" ,ocaml-num))) + ("ocaml-benchmark" ,ocaml-benchmark) + ("ocaml-qcheck" ,ocaml-qcheck) + ("ocaml-qtest" ,ocaml-qtest))) (arguments `(#:phases (modify-phases %standard-phases - (delete 'check) ; tests are run by the build phase + (add-after 'unpack 'make-writable + (lambda _ + (for-each make-file-writable (find-files "." ".")))) (add-before 'build 'fix-nondeterminism (lambda _ (substitute* "setup.ml" (("Sys.readdir dirname") "let a = Sys.readdir dirname in Array.sort String.compare a; a")) - #t)) - (replace 'build - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((files - (map (lambda (str) - (substring str 0 (- (string-length str) 1))) - (append - (find-files "src" ".*.mliv") - (find-files "src" ".*.mlv") - (find-files "src" ".*.mlp"))))) - (apply invoke "ocamlbuild" "-no-links" "-use-ocamlfind" "-I" "num" - "-lflag" "-dllpath-all" files) - (for-each (lambda (file) - (copy-file (string-append "_build/" file) file)) - files)) - (invoke "ocamlbuild" "-no-links" "-use-ocamlfind" "-I" "num" - "-lflag" "-dllpath-all" "build/mkconf.byte") - (copy-file "_build/build/mkconf.byte" "build/mkconf.byte") - (invoke "make" "all") #t))))) + (properties `((ocaml4.07-variant . ,(delay ocaml4.07-batteries)))) (home-page "http://batteries.forge.ocamlcore.org/") (synopsis "Development platform for the OCaml programming language") (description "Define a standard set of libraries which may be expected on @@ -3259,6 +3245,54 @@ every compliant installation of OCaml and organize these libraries into a hierarchy of modules.") (license license:lgpl2.1+))) +(define-public ocaml4.07-batteries + (package-with-ocaml4.07 + (package + (inherit ocaml-batteries) + (version "2.10.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml-batteries-team/batteries-included") + (commit (string-append "v" version)))) + (file-name (git-file-name "ocaml-batteries" version)) + (sha256 + (base32 + "02fxa1nkp7rpiwfp04n0sagdp9lad4dh9bvljp95xfshm1cx7y4q")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'check) ; tests are run by the build phase + (add-before 'build 'fix-nondeterminism + (lambda _ + (substitute* "setup.ml" + (("Sys.readdir dirname") + "let a = Sys.readdir dirname in Array.sort String.compare a; a")) + #t)) + (replace 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((files + (map (lambda (str) + (substring str 0 (- (string-length str) 1))) + (append + (find-files "src" ".*.mliv") + (find-files "src" ".*.mlv") + (find-files "src" ".*.mlp"))))) + (apply invoke "ocamlbuild" "-no-links" "-use-ocamlfind" "-I" "num" + "-lflag" "-dllpath-all" files) + (for-each (lambda (file) + (copy-file (string-append "_build/" file) file)) + files)) + (invoke "ocamlbuild" "-no-links" "-use-ocamlfind" "-I" "num" + "-lflag" "-dllpath-all" "build/mkconf.byte") + (copy-file "_build/build/mkconf.byte" "build/mkconf.byte") + (invoke "make" "all") + #t))))) + (native-inputs + `(("ocamlbuild" ,ocamlbuild) + ("qtest" ,ocaml-qtest))) + (properties '())))) + (define-public ocaml-pcre (package (name "ocaml-pcre") |