Subject: [PATCH 1/2] gnu: ocaml-camomile: Update to 2.0.0.

From: Lobo Torres <[email-masked]>
Date: Tue, 23 Apr 2024 21:54:35 -0400

* gnu/packages/ocaml.scm (ocaml-camomile): Update to 2.0.0.
* gnu/packages/ocaml.scm (ocaml-charinfo-width): Update to 2.0.0.
* gnu/packages/ocaml.scm (ocaml-stdlib-random): New variable.

Change-Id: I6d01453acc19db5df6a02343f96929d47721c911
---
 gnu/packages/ocaml.scm | 109 ++++++++++++++++++++++++-----------------
 1 file changed, 64 insertions(+), 45 deletions(-)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 7fad276b4e..75a42058d6 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -4825,6 +4825,33 @@ (define-public ocaml-stdlib-shims
     ;; with ocaml-linking exception
     (license license:lgpl2.1+)))
 
+(define-public ocaml-stdlib-random
+  (package
+    (name "ocaml-stdlib-random")
+    (version "1.1.0")
+    (home-page "https://github.com/ocaml/stdlib-random")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append home-page
+                           "/releases/download/"
+                           version
+                           "/stdlib-random-"
+                           version
+                           ".tbz"))
+       (sha256
+        (base32 "0n95h57z0d9hf1y5a3v7bbci303wl63jn20ymnb8n2v8zs1034wb"))))
+    (build-system dune-build-system)
+    (native-inputs (list ocaml-cppo ocaml-odoc))
+    (synopsis "Versioned random number library")
+    (description
+     "Compatibility library for Random number generation
+
+This library provides access to the various implementation of the Random
+module from the OCaml standard library independently of the compiler
+version.")
+    (license license:lgpl2.1+)))
+
 (define-public ocaml-fileutils
   (package
     (name "ocaml-fileutils")
@@ -4832,8 +4859,8 @@ (define-public ocaml-fileutils
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                     (url "https://github.com/gildor478/ocaml-fileutils")
-                     (commit (string-append "v" version))))
+                    (url "https://github.com/gildor478/ocaml-fileutils")
+                    (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
@@ -5443,27 +5470,23 @@ (define-public bap
 (define-public ocaml-camomile
   (package
     (name "ocaml-camomile")
-    (version "1.0.2")
-    (home-page "https://github.com/yoriyuki/Camomile")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append home-page "/releases/download/" version
-                                  "/camomile-" version ".tbz"))
-              (sha256
-               (base32
-                "0chn7ldqb3wyf95yhmsxxq65cif56smgz1mhhc7m0dpwmyq1k97h"))))
+    (version "2.0.0")
+    (home-page "https://github.com/ocaml-community/Camomile")
+    (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 "1br1as5xb8w0jds7yi23546nrf6sag8gkzkv5avkdlf3agwmfj8y"))))
     (build-system dune-build-system)
-    (arguments
-     `(#:tests? #f ; Tests fail, see https://github.com/yoriyuki/Camomile/issues/82
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'fix-usr-share
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* '("Camomile/dune" "configure.ml")
-               (("/usr/share") (string-append (assoc-ref outputs "out") "/share")))
-             #t)))))
+    (propagated-inputs (list ocaml-camlp-streams dune-site))
+    (native-inputs (list ocaml-stdlib-random))
     (synopsis "Comprehensive Unicode library")
-    (description "Camomile is a Unicode library for OCaml.  Camomile provides
+    (description
+     "Camomile is a Unicode library for OCaml.  Camomile provides
 Unicode character type, UTF-8, UTF-16, UTF-32 strings, conversion to/from about
 200 encodings, collation and locale-sensitive case mappings, and more.  The
 library is currently designed for Unicode Standard 3.2.")
@@ -5472,31 +5495,27 @@ (define-public ocaml-camomile
 
 (define-public ocaml-charinfo-width
   ;; Add LICENSE file and Dune tests
-  (let ((commit "20aaaa6dca8f1e0b1ace55b6f2a8ba5e5910b620"))
-    (package
-      (name "ocaml-charinfo-width")
-      (version (git-version "1.1.0" "1" commit))
-      (home-page "https://github.com/kandu/charinfo_width/")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url home-page)
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "04gil5hxm2jax9paw3i24d8zyzhyl5cphzfyryvy2lcrm3c485q0"))))
-      (build-system dune-build-system)
-      (propagated-inputs
-       (list ocaml-result ocaml-camomile))
-      (native-inputs
-       (list ocaml-ppx-expect))
-      (properties
-       `((upstream-name . "charInfo_width")))
-      (synopsis "Determine column width for a character")
-      (description "This module implements purely in OCaml a character width
+  (package
+    (name "ocaml-charinfo-width")
+    (version "2.0.0")
+    (home-page "https://github.com/kandu/charinfo_width/")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0f4siscbfm03bdgzip3n5m551v6zi8n4vgl69djnxa87mkfim015"))))
+    (build-system dune-build-system)
+    (propagated-inputs (list ocaml-result ocaml-camomile))
+    (native-inputs (list ocaml-ppx-expect))
+    (properties `((upstream-name . "charInfo_width")))
+    (synopsis "Determine column width for a character")
+    (description "This module implements purely in OCaml a character width
 function that follows the prototype of POSIX's wcwidth.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public ocaml-zed
   (package
-- 
2.41.0