Subject: [bug#76649] [PATCH] gnu: ocaml-ctypes: update to 0.23.0

From: Erwan Jahier <[email-masked]>
Date: Fri, 28 Feb 2025 17:53:23 +0100

commit bb7c5f2a15296ee0541807d3abe6ce15edea09a3
Author: erwan <[email-masked]>

    gnu: ocaml-ctypes: update to 0.23.0
    
    * gnu/packages/ocaml.scm (ocaml-ctypes):  update to  0.23.0 and switch  to the
    dune building system.

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index f265aee249..16ab7c1e44 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -5643,10 +5643,10 @@ (define-public ocaml-integers
 
 (define-public ocaml-ctypes
   (package
-   (name "ocaml-ctypes")
-   (version "0.20.1")
-   (home-page "https://github.com/ocamllabs/ocaml-ctypes")
-   (source (origin
+    (name "ocaml-ctypes")
+    (version "0.23.0")
+    (home-page "https://github.com/yallop/ocaml-ctypes")
+    (source (origin
              (method git-fetch)
              (uri (git-reference
                     (url home-page)
@@ -5654,35 +5654,25 @@ (define-public ocaml-ctypes
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "0ilzq9qzvwv9rc08cc9wchsx636zp870i7qvqmbigaa2qb812m0z"))))
-   (build-system ocaml-build-system)
-   (arguments
-    `(#:phases
-      (modify-phases %standard-phases
-        (add-after 'unpack 'make-writable
-          (lambda _
-            (for-each make-file-writable
-                      (find-files "."))))
-        (delete 'configure))))
-   (native-inputs
-    `(("pkg-config" ,pkg-config)
-      ("ounit" ,ocaml-ounit)
-      ("lwt" ,ocaml-lwt)))
-   (propagated-inputs
-    `(("bigarray-compat" ,ocaml-bigarray-compat)
-      ("integers" ,ocaml-integers)))
-   (inputs
-    (list libffi))
-   (properties `((ocaml5.0-variant . ,(delay ocaml5.0-ctypes))))
-   (synopsis "Library for binding to C libraries using pure OCaml")
-   (description "Ctypes is a library for binding to C libraries using pure
-OCaml.  The primary aim is to make writing C extensions as straightforward as
-possible.  The core of ctypes is a set of combinators for describing the
-structure of C types -- numeric types, arrays, pointers, structs, unions and
-functions.  You can use these combinators to describe the types of the
-functions that you want to call, then bind directly to those functions -- all
-without writing or generating any C!")
-   (license license:expat)))
+               "16dxz2r070vlrkbqhza0c5y6izxpjn080vqmxj47i919wfqd75vx"))))
+    (build-system dune-build-system)
+    (propagated-inputs (list ocaml-integers dune-configurator
+                             ocaml-bigarray-compat ocaml-odoc))
+    (native-inputs (list ocaml-ounit2 libffi pkg-config))
+    (synopsis "Combinators for binding to C libraries without writing any C")
+    (description
+     "ctypes is a library for binding to C libraries using pure OCaml.  The primary
+aim is to make writing C extensions as straightforward as possible.  The core of
+ctypes is a set of combinators for describing the structure of C types --
+numeric types, arrays, pointers, structs, unions and functions.  You can use
+these combinators to describe the types of the functions that you want to call,
+then bind directly to those functions -- all without writing or generating any
+C! To install the optional `ctypes-foreign` interface (which uses `libffi` to
+provide dynamic access to foreign libraries), you will need to also install the
+`ctypes-foreign` package.  opam install ctypes-foreign This will make the
+`ctypes-foreign` ocamlfind subpackage available.")
+    (license license:expat)))
+
 
 (define-public ocaml5.0-ctypes
   ;; Contains fix to support OCaml 5.0