diff options
author | John Kehayias <john.kehayias@protonmail.com> | 2022-07-27 23:31:26 -0400 |
---|---|---|
committer | 宋文武 <iyzsong@member.fsf.org> | 2022-08-03 13:37:23 +0800 |
commit | e2020eb24ad0eddd228ce4a26463d881c4e79d0b (patch) | |
tree | 7bbc0093142637a1973c9fa67033c04a2b618dfb | |
parent | 94f801a4269a774e1d4bafb4ea2db75f5d68504a (diff) |
gnu: Add ocaml-luv.
* gnu/packages/ocaml.scm (ocaml-luv): New variable.
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
-rw-r--r-- | gnu/packages/ocaml.scm | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index ff24861eb0..895b99320e 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2624,6 +2625,48 @@ process. Also, in many cases, Lwt threads can interact without the need for locks or other synchronization primitives.") (license license:lgpl2.1))) +(define-public ocaml-luv + (package + (name "ocaml-luv") + (version "0.5.11") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/aantron/luv/releases/download/" + version "/luv-" version ".tar.gz")) + (sha256 + (base32 + "0hrsi8n2l31bcwgj847df4chjgqb9lmwkaky8fvvi15k25rz9v6c")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove bundled configure and libuv. + (delete-file-recursively "src/c/vendor") + #t)))) + (build-system dune-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-before 'build 'use-system-libuv + (lambda _ + (setenv "LUV_USE_SYSTEM_LIBUV" "yes"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "dune" "runtest" "--no-buffer" "--force"))))))) + (inputs (list libuv)) + (propagated-inputs (list ocaml-ctypes ocaml-result ocaml-odoc)) + (native-inputs (list ocaml-base ocaml-alcotest)) + (home-page "https://github.com/aantron/luv") + (synopsis "Binding to libuv: cross-platform asynchronous I/O") + (description + "Luv is a binding to libuv, the cross-platform C library that does +asynchronous I/O in Node.js and runs its main loop. Besides asynchronous I/O, +libuv also supports multiprocessing and multithreading. Multiple event loops +can be run in different threads. libuv also exposes a lot of other +functionality, amounting to a full OS API, and an alternative to the standard +module Unix.") + (license license:expat))) + (define-public ocaml-lwt-react (package (inherit ocaml-lwt) |