Subject: [bug#45498] [PATCH 03/12] gnu: Add ocaml-base.

From: pukkamustard <[email-masked]>
Date: Mon, 28 Dec 2020 13:47:09 +0100

* gnu/packages/ocaml.scm (ocaml-base): New variable.
  (ocaml4.07-base): Inherit from ocaml-base.
---
 gnu/packages/ocaml.scm | 48 ++++++++++++++++++++++++++----------------
 1 file changed, 30 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 917a82c514..36137e9d78 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -4146,22 +4146,47 @@ parsexp_io.")
 functionality for parsing and pretty-printing s-expressions.")
     (license license:expat)))
 
-(define-public ocaml4.07-base
+(define-public ocaml-base
   (package
+    (name "ocaml-base")
+    (version "0.14.0")
+    (home-page "https://github.com/janestreet/base")
+    (source
+     (janestreet-origin "base" version
+         "1rkdhsgbcv0a8p29mwvpd2ldz8cjk97pixl43izm54wyin4lp778"))
+    (build-system dune-build-system)
+    (propagated-inputs
+     `(("ocaml-sexplib0" ,ocaml-sexplib0)))
+    (arguments '())
+    (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.
+
+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)))
+
+(define-public ocaml4.07-base
+  (package (inherit ocaml-base)
     (name "ocaml4.07-base")
     (version "0.11.1")
-    (home-page "https://github.com/janestreet/base")
     (source
      (origin
+       ;; version 0.11.1 is not released on ocaml.janestreet.org.
        (method git-fetch)
        (uri (git-reference
-             (url (string-append home-page ".git"))
+             (url "https://github.com/janestreet/base.git")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
          "0j6xb4265jr41vw4fjzak6yr8s30qrnzapnc6rl1dxy8bjai0nir"))))
-    (build-system dune-build-system)
     (propagated-inputs
      `(("ocaml-sexplib0" ,ocaml4.07-sexplib0)))
     (arguments
@@ -4173,20 +4198,7 @@ functionality for parsing and pretty-printing s-expressions.")
              (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
-library.  It provides all standard functionalities one would expect
-from a language standard library.  It uses consistent conventions
-across all of its module.
-
-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)))
+       #:dune ,ocaml4.07-dune))))
 
 (define-public ocaml4.07-compiler-libs
   (package
-- 
2.29.2