diff mbox series

[bug#40091] gnu: dune: Update to 2.4.0.

Message ID CAEwRq=p2sWWjSUTY=1jAat-pPbY-rEbGOK-mvtNqxg7s7E=uPw@mail.gmail.com
State Accepted
Headers show
Series [bug#40091] gnu: dune: Update to 2.4.0. | expand

Checks

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

Commit Message

Vincent Legoll March 16, 2020, 4:44 p.m. UTC
The added "release" make parameter, fixes the following bug:
make: ./dune.exe: Command not found

Tested with ocaml-menhir package update
(which will follow soon)

This may force a lot of other rebuildings, so
may not be suitable for master

--
Vincent Legoll

Comments

Julien Lepiller March 16, 2020, 7:46 p.m. UTC | #1
Thanks for the patch! I tried using it, but even though dune builds
fine, this new version removed support for jbuild, which creates build
errors when building e.g. ocaml4.07-sexplib0.

Note that according to "guix refresh -l dune" there are only 137
dependents, so this change could go to master. However, we need to find
a solution to the above issue. The guix refresh command should give you
the list of packages that depend on dune. Make sure that those who
build now still build after your patch, or fix them. We could also
duplicate the dune package and uses the older dune for our packages
that still use jbuild. Alternatively, as suggested by dune, maybe we
can try to run "dune upgrade" in these packages.

What do you think would work best?

Le Mon, 16 Mar 2020 17:44:02 +0100,
Vincent Legoll <vincent.legoll@gmail.com> a écrit :

> The added "release" make parameter, fixes the following bug:
> make: ./dune.exe: Command not found
> 
> Tested with ocaml-menhir package update
> (which will follow soon)
> 
> This may force a lot of other rebuildings, so
> may not be suitable for master
> 
> --
> Vincent Legoll
Vincent Legoll March 16, 2020, 8:45 p.m. UTC | #2
Hello,

On Mon, Mar 16, 2020 at 8:46 PM Julien Lepiller <julien@lepiller.eu> wrote:
> Thanks for the patch! I tried using it, but even though dune builds
> fine, this new version removed support for jbuild, which creates
> build errors when building e.g. ocaml4.07-sexplib0.

Ah, that explains the build problem I met in my attempt to package
coccinelle... It surprised me since I read in the dune doc that jbuild
should be supported by dune. Maybe that doc is outdated...

> Note that according to "guix refresh -l dune" there are only 137
> dependents, so this change could go to master.

Yep, I saw that, but I also tried "guix refresh -lr" and that gave a
huge list. Maybe that's not relevant, I'm still low on the
guix / guile learning curve...

> However, we need to find a solution to the above issue.

Yes

> The guix refresh command should give you
> the list of packages that depend on dune.
> Make sure that those who
> build now still build after your patch, or fix them.

Yes

> We could also
> duplicate the dune package and uses the older dune for our
> packages that still use jbuild.

This may be the path of least resistance, and would let us
handle problems without a flag day...

> Alternatively, as suggested by dune, maybe we
> can try to run "dune upgrade" in these packages.
>
> What do you think would work best?

That is a question I cannot answer, I did not know about dune
before today ;-)

But I'll try to "dune upgrade" a few of them and we'll see where
this'll lead...

I was not expecting to fall in such a rabbit hole...
But this is fun, I'll keep at it.
Simon Tournier Oct. 15, 2020, 5:03 p.m. UTC | #3
Dear Vincent,

On Mon, 16 Mar 2020 at 17:44, Vincent Legoll <vincent.legoll@gmail.com> wrote:

> The added "release" make parameter, fixes the following bug:
> make: ./dune.exe: Command not found
>
> Tested with ocaml-menhir package update
> (which will follow soon)
>
> This may force a lot of other rebuildings, so
> may not be suitable for master

Thank you for your contribution.  The recent commit 339177956a updates
dune to 2.7.1.  Does it work for your use-case?

If yes, feel free to close this.


All the best,
simon
Christopher Baines Nov. 20, 2020, 9:39 p.m. UTC | #4
Closing, as dune has been updated past 2.4.0.
diff mbox series

Patch

From 1cd0debdbf5acbbba634feb25b72d46c8d53ea98 Mon Sep 17 00:00:00 2001
From: Vincent Legoll <vincent.legoll@gmail.com>
Date: Mon, 16 Mar 2020 16:41:11 +0100
Subject: [PATCH] gnu: dune: Update to 2.4.0.

* gnu/packages/ocaml.scm (dune): Update to 2.4.0
[arguments]: Add "release" to make parameters to force rebuilding
"dune.exe"
---
 gnu/packages/ocaml.scm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 35701039ad..ea4fb3edb1 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -1242,7 +1242,7 @@  full_split, cut, rcut, etc..")
 (define-public dune
   (package
     (name "dune")
-    (version "1.11.3")
+    (version "2.4.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1251,11 +1251,12 @@  full_split, cut, rcut, etc..")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))
+                "0i8b84mi38r431z4a1yh4xnn9z5mnk1g3di0qz6h4lsxq8pg2m0v"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f; require odoc
-       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+       #:make-flags (list "release"
+                          (string-append "PREFIX=" (assoc-ref %outputs "out"))
                           (string-append "LIBDIR=" (assoc-ref %outputs "out")
                                          "/lib/ocaml/site-lib"))
        #:phases
-- 
2.25.1