Subject: [PATCH v2 04/16] gnu: Add ocaml-wtf8.

From: Philip McGrath <[email-masked]>
Date: Thu, 16 Nov 2023 14:15:42 -0500

* gnu/packages/ocaml.scm (ocaml-wtf8): New variable.
---
 gnu/packages/ocaml.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 7993dbaa73..50b0d1ddb7 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -29,6 +29,7 @@
 ;;; Copyright © 2022 Garek Dyszel <[email-masked]>
 ;;; Copyright © 2023 Csepp <[email-masked]>
 ;;; Copyright © 2023 Foundation Devices, Inc. <[email-masked]>
+;;; Copyright © 2023 Philip McGrath <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3655,6 +3656,30 @@ (define-public ocaml-uutf
 string values and to directly encode characters in OCaml Buffer.t values.")
     (license license:isc)))
 
+(define-public ocaml-wtf8
+  (package
+    (name "ocaml-wtf8")
+    (version "1.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/flow/ocaml-wtf8/releases/download/"
+                    "v" version "/wtf8-v" version ".tbz"))
+              (sha256
+               (base32
+                "09ygcxxd5warkdzz17rgpidrd0pg14cy2svvnvy1hna080lzg7vp"))))
+    (build-system dune-build-system)
+    (home-page "https://github.com/flow/ocaml-wtf8")
+    (synopsis "OCaml encoder and decoder for @acronym{WTF-8}")
+    (description
+     "This library provides an OCaml encoder and decoder for @acronym{WTF-8,
+Wobbly Transformation Format---8 bit}, a superset of UTF-8 that allows
+unpaired surrogates while preserving the other well-formedness constraints of
+UTF-8.  This format is useful for interoperating with systems that use
+potentially ill-formed UTF-16, notably including ECMAScript strings and
+Windows filesystems.")
+    (license license:expat)))
+
 (define-public ocaml-uunf
   (package
     (name "ocaml-uunf")
-- 
2.41.0