diff mbox series

[bug#45133] Add ocaml reactiveData

Message ID e26781478b7664107606e23495b5e07fbaee1116.camel@divoplade.fr
State Accepted
Headers show
Series [bug#45133] Add ocaml reactiveData | expand

Checks

Context Check Description
cbaines/submitting builds success
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

divoplade Dec. 10, 2020, 2:12 p.m. UTC
Le jeudi 10 décembre 2020 à 08:53 -0500, Julien Lepiller a écrit :
> > If I delete the makefile in a snippet, the ocaml-build-system will
> > not
> > pass "native=true" to the pkg/build.ml script, so it fails. That's
> > why
> > there's a Makefile.
> > 
> > If I replace my install command with opam-install, I get that opam-
> > install does not exist (I have opam in inputs and native-inputs).
> > Are
> > you sure that this program exists? I don't see it in the opam
> > package.
> 
> Sorry, opam-installer.

The solution was to delete the Makefile just before the install phase
^^

I've tried to reproduce the changes of simon but I'm not sure I
reproduced the indentation correctly (it's different from what
etc/indent.el does, but a lot of ocaml packages are not indented
according to that script).

So the last point is about url-fetch vs git-fetch: why do you want to
use git-fetch?

Comments

Simon Tournier Dec. 10, 2020, 2:43 p.m. UTC | #1
Hi,

On Thu, 10 Dec 2020 at 15:12, divoplade <d@divoplade.fr> wrote:

> The solution was to delete the Makefile just before the install phase

Cool!  That’s what I proposed, sorry if I have not been clear. :-)


> I've tried to reproduce the changes of simon but I'm not sure I
> reproduced the indentation correctly (it's different from what
> etc/indent.el does, but a lot of ocaml packages are not indented
> according to that script).

Ahah!  Let use the one of etc/indent.el for the ocaml-reactivedata and
see the other ones later.


> So the last point is about url-fetch vs git-fetch: why do you want to
> use git-fetch?

Well, because OCaml packages currently uses more git-fetch than url-fetch:

--8<---------------cut here---------------start------------->8---
$ cat gnu/packages/ocaml.scm | grep url-fetch | wc -l
69

$ cat gnu/packages/ocaml.scm | grep git-fetch | wc -l
91
--8<---------------cut here---------------end--------------->8---

It is a matter of taste.  You can read the thread starting here:

<https://yhetil.org/guix-devel/CAJ3okZ0v3VvmT=eWAVeAQoFqZh4L3H4tUkEJn1-5EXcJgRB_tQ@mail.gmail.com>

The main advantages of git-fetch over url-fetch are, IMHO:

 - lint saves to SWH; no SWH fallback with url-fetch
 - easy to try any other commit (--with-commit)
 - with specified commit–as it is here– avoid the in-place upstream replacement annoyance

I was just sharing my opinion reading your patch after questions on IRC,
and I have no strong opinions since Julien is the one who will review
and push it. :-)

All the best,
simon
diff mbox series

Patch

From 6b4627f6d40b61b60788480e353a4592542684a4 Mon Sep 17 00:00:00 2001
From: divoplade <d@divoplade.fr>
Date: Thu, 10 Dec 2020 15:06:50 +0100
Subject: [PATCH] gnu: add ocaml-reactivedata

	* ocaml.scm (ocaml-reactivedata): add ocaml-reactivedata
---
 gnu/packages/ocaml.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 2bfda7307e..4cd1e05464 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -5859,3 +5859,44 @@  LablGL), gnomecanvas, gnomeui, gtksourceview, gtkspell, libglade (and it can
 generate OCaml code from .glade files), libpanel, librsvg and quartz.")
     ;; Version 2 only, with linking exception.
     (license license:lgpl2.0)))
+
+(define-public ocaml-reactivedata
+  ;; Future releases will use dune.
+  (package
+    (name "ocaml-reactivedata")
+    (version "0.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri "https://github.com/ocsigen/reactiveData/archive/0.2.2.tar.gz")
+              (sha256
+               (base32
+                "0jzagyp4zla28wykvcgqwd8df71ir0vb4s8akp02cfacd5v86sng"))))
+    (arguments
+     `(#:phases
+       (modify-phases
+           %standard-phases
+         (delete 'configure)
+         (add-before 'build 'fix-deprecated
+           (lambda _
+             (substitute*
+                 "src/reactiveData.ml"
+               (("Pervasives.compare") "compare"))
+             #t))
+         (add-before 'install 'forget-makefile
+           (lambda _
+             (delete-file "Makefile")
+             #t)))))
+    (build-system ocaml-build-system)
+    (native-inputs
+     `(("ocamlbuild" ,ocamlbuild)
+       ("opam" ,opam)))
+    (propagated-inputs
+     `(("ocaml-react" ,ocaml-react)))
+    (home-page "https://github.com/ocsigen/reactiveData")
+    (synopsis "Declarative events and signals for OCaml")
+    (description
+     "React is an OCaml module for functional reactive programming (FRP). It
+provides support to program with time varying values : declarative events and
+ signals. React doesn't define any primitive event or signal, it lets the
+client chooses the concrete timeline.")
+    (license license:lgpl2.1+)))
-- 
2.29.2