diff mbox series

[bug#64249,ocaml-team,v6,12/12] gnu: opam: Update to 2.1.5.

Message ID 30fab02e9f44c827616e14c9b349b268a7e5239f.1694501410.git.pukkamustard@posteo.net
State New
Headers show
Series The one where OPAM finally works | expand

Commit Message

pukkamustard Sept. 12, 2023, 6:57 a.m. UTC
* gnu/packages/ocaml.scm (opam): Update to 2.1.5.
  [native-inputs]: Add more test data.
  [arguments]: Disable failing test.
  (ocaml-graph): Update to 2.0.0.
  (ocaml-dose3): Update to 7.0.0.
* gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch: Remove.
* gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch: Remove.
* gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch: Remove.
* gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch: Remove.
* gnu/local.mk (dist_path_DATA): Unregister removed patches.
---
 gnu/local.mk                                  |   4 -
 gnu/packages/ocaml.scm                        | 132 +++++++++--------
 .../ocaml-dose3-Fix-for-ocaml-4.06.patch      |  52 -------
 .../ocaml-dose3-Install-mli-cmx-etc.patch     | 133 ------------------
 .../ocaml-dose3-add-unix-dependency.patch     |  25 ----
 .../ocaml-dose3-dont-make-printconf.patch     |   9 --
 6 files changed, 74 insertions(+), 281 deletions(-)
 delete mode 100644 gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
 delete mode 100644 gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch
 delete mode 100644 gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch
 delete mode 100644 gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch

Comments

Simon Tournier Sept. 22, 2023, 2:21 p.m. UTC | #1
Hi,

On Tue, 12 Sep 2023 at 06:57, pukkamustard <pukkamustard@posteo.net> wrote:
> * gnu/packages/ocaml.scm (opam): Update to 2.1.5.
>   [native-inputs]: Add more test data.
>   [arguments]: Disable failing test.
>   (ocaml-graph): Update to 2.0.0.
>   (ocaml-dose3): Update to 7.0.0.
> * gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch: Remove.
> * gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch: Remove.
> * gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch: Remove.
> * gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch: Remove.
> * gnu/local.mk (dist_path_DATA): Unregister removed patches.
> ---
>  gnu/local.mk                                  |   4 -
>  gnu/packages/ocaml.scm                        | 132 +++++++++--------
>  .../ocaml-dose3-Fix-for-ocaml-4.06.patch      |  52 -------
>  .../ocaml-dose3-Install-mli-cmx-etc.patch     | 133 ------------------
>  .../ocaml-dose3-add-unix-dependency.patch     |  25 ----
>  .../ocaml-dose3-dont-make-printconf.patch     |   9 --
>  6 files changed, 74 insertions(+), 281 deletions(-)
>  delete mode 100644 gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
>  delete mode 100644 gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch
>  delete mode 100644 gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch
>  delete mode 100644 gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch

I get:

--8<---------------cut here---------------start------------->8---
Applying: gnu: opam: Update to 2.1.5.
error: corrupt patch at line 292
error: could not build fake ancestor
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 gnu: opam: Update to 2.1.5.
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
--8<---------------cut here---------------end--------------->8---

And as suggested by

    base-commit: 5db78e7c1b06d1b4892bdb3e153b95b21577271e

from the cover letter, I am on the top of it.

What do I miss?

Cheers,
simon
Julien Lepiller Sept. 22, 2023, 7:48 p.m. UTC | #2
For some reason this last patch makes why3 fail to build, but the
latest version builds fine. It's only used by frama-c, which fails to
build with this newer why3. Now, updating frama-c would be nice, but it
requires a bit more work, as it switched to dune and has a few more
dependencies.

Otherwise, the whole series LGTM, including the coq fixup.
Julien Lepiller Sept. 26, 2023, 9:34 a.m. UTC | #3
If you agree, I could push the first 11 patches to master. Then, we only have to deal with package updates, which I could take over from you.

I was looking at what would be needed for updating frama-c to a compatible version yesterday, and it's only ~5 new packages, so it's not that bad, but they also require an update to at least ppxlib, which could trigger more failures and require more fixes.

I'll work on that for a few days and see if I find a good solution to update everything that's needed.

Le 22 septembre 2023 21:48:28 GMT+02:00, Julien Lepiller <julien@lepiller.eu> a écrit :
>For some reason this last patch makes why3 fail to build, but the
>latest version builds fine. It's only used by frama-c, which fails to
>build with this newer why3. Now, updating frama-c would be nice, but it
>requires a bit more work, as it switched to dune and has a few more
>dependencies.
>
>Otherwise, the whole series LGTM, including the coq fixup.
>
>
>
Julien Lepiller Sept. 28, 2023, 8:11 p.m. UTC | #4
Le Tue, 26 Sep 2023 11:34:43 +0200,
Julien Lepiller <julien@lepiller.eu> a écrit :

> If you agree, I could push the first 11 patches to master. Then, we
> only have to deal with package updates, which I could take over from
> you.
> 
> I was looking at what would be needed for updating frama-c to a
> compatible version yesterday, and it's only ~5 new packages, so it's
> not that bad, but they also require an update to at least ppxlib,
> which could trigger more failures and require more fixes.
> 
> I'll work on that for a few days and see if I find a good solution to
> update everything that's needed.
> 
> Le 22 septembre 2023 21:48:28 GMT+02:00, Julien Lepiller
> <julien@lepiller.eu> a écrit :
> >For some reason this last patch makes why3 fail to build, but the
> >latest version builds fine. It's only used by frama-c, which fails to
> >build with this newer why3. Now, updating frama-c would be nice, but
> >it requires a bit more work, as it switched to dune and has a few
> >more dependencies.
> >
> >Otherwise, the whole series LGTM, including the coq fixup.
> >
> >
> >  
> 
> 
> 

I managed to find all the required package updates and new packages to
get frama-c to build again. I just need to figure out a good order and
I'll send an updated patchset.
pukkamustard Oct. 12, 2023, 9:18 a.m. UTC | #5
Salut Julien,

I'm afraid your last messages somehow got dropped and I only saw them
now after checking the issue on issues.guix.gnu.org. Sorry for delayed
response.

> If you agree, I could push the first 11 patches to master.

Sounds good to me!

Only thing is that dune was updated again (dune releases are too fast
for us!). Maybe we can bump it to 3.11.0 before pushing to master?

If you think we should run it trough CI once again I can send in a V7
that bumps dune to 3.11.0 and includes Josselin's coq fixup.

> I managed to find all the required package updates and new packages to
> get frama-c to build again. I just need to figure out a good order and
> I'll send an updated patchset.

\o/ woohoo, nice!

Let me know if I can help in anyway.

-pukkamustard

pukkamustard <pukkamustard@posteo.net> writes:

> Hello Guix,
>
> Thanks to Julien's help this version finally build OPAM!
>
> I'm currently very slow and it will probably take quite a bit of time for me to
> look into the other things that could be updated in Guix's OCaml land (see
> https://yhetil.org/guix/86bkhgc7jj.fsf@posteo.net/). Maybe it would make sense
> to merge this patch series into master instead of having a too long-lived
> ocaml-team branch? What do you think?
>
> Cheers,
> pukkamustard
>
> pukkamustard (12):
>   gnu: ocaml: Update to 4.14.1.
>   gnu: Update coq-flocq to 4.1.1.
>   gnu: Update coq-gappa to 1.5.3.
>   gnu: Update coq-coquelicot to 3.4.0.
>   gnu: Update coq-mathcomp to 1.17.0.
>   gnu: Update coq-autosubst to 1.8.
>   gnu: Update coq-stdpp to 1.8.0.
>   gnu: Update coq-interval to 4.8.0.
>   gnu: coq: Update to 8.17.1.
>   gnu: dune-bootstrap: Update to 3.10.0.
>   gnu: opam: Split build into smaller sub-packages.
>   gnu: opam: Update to 2.1.5.
>
>  gnu/local.mk                                  |   4 -
>  gnu/packages/coq.scm                          | 152 +++----
>  gnu/packages/ocaml.scm                        | 410 +++++++++++-------
>  .../ocaml-dose3-Fix-for-ocaml-4.06.patch      |  52 ---
>  .../ocaml-dose3-Install-mli-cmx-etc.patch     | 133 ------
>  .../ocaml-dose3-add-unix-dependency.patch     |  25 --
>  .../ocaml-dose3-dont-make-printconf.patch     |   9 -
>  7 files changed, 331 insertions(+), 454 deletions(-)
>  delete mode 100644 gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
>  delete mode 100644 gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch
>  delete mode 100644 gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch
>  delete mode 100644 gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch
>
>
> base-commit: 5db78e7c1b06d1b4892bdb3e153b95b21577271e
Julien Lepiller Oct. 12, 2023, 10:24 a.m. UTC | #6
Le 12 octobre 2023 11:18:46 GMT+02:00, pukkamustard <pukkamustard@posteo.net> a écrit :
>
>Salut Julien,
>
>I'm afraid your last messages somehow got dropped and I only saw them
>now after checking the issue on issues.guix.gnu.org. Sorry for delayed
>response.
>
>> If you agree, I could push the first 11 patches to master.
>
>Sounds good to me!
>
>Only thing is that dune was updated again (dune releases are too fast
>for us!). Maybe we can bump it to 3.11.0 before pushing to master?
>
>If you think we should run it trough CI once again I can send in a V7
>that bumps dune to 3.11.0 and includes Josselin's coq fixup.

That would be best

>
>> I managed to find all the required package updates and new packages to
>> get frama-c to build again. I just need to figure out a good order and
>> I'll send an updated patchset.
>
>\o/ woohoo, nice!
>
>Let me know if I can help in anyway.

Well, I managed to fix frama-c and update it, but the changes then broke other packages. After a few more updates, bap is the only failing package left.

I added a few changes to the recipe that makes it go a bit further, but I still get errors. I'll try updating more packages to see if that's a conflict of versions, but I'm not-very confident about that.

The most important change I needed was updating ppxlib and the janestreet packages, but bap is not compatible with the new version, even on their master branch.

>
>-pukkamustard
>
>pukkamustard <pukkamustard@posteo.net> writes:
>
>> Hello Guix,
>>
>> Thanks to Julien's help this version finally build OPAM!
>>
>> I'm currently very slow and it will probably take quite a bit of time for me to
>> look into the other things that could be updated in Guix's OCaml land (see
>> https://yhetil.org/guix/86bkhgc7jj.fsf@posteo.net/). Maybe it would make sense
>> to merge this patch series into master instead of having a too long-lived
>> ocaml-team branch? What do you think?
>>
>> Cheers,
>> pukkamustard
>>
>> pukkamustard (12):
>>   gnu: ocaml: Update to 4.14.1.
>>   gnu: Update coq-flocq to 4.1.1.
>>   gnu: Update coq-gappa to 1.5.3.
>>   gnu: Update coq-coquelicot to 3.4.0.
>>   gnu: Update coq-mathcomp to 1.17.0.
>>   gnu: Update coq-autosubst to 1.8.
>>   gnu: Update coq-stdpp to 1.8.0.
>>   gnu: Update coq-interval to 4.8.0.
>>   gnu: coq: Update to 8.17.1.
>>   gnu: dune-bootstrap: Update to 3.10.0.
>>   gnu: opam: Split build into smaller sub-packages.
>>   gnu: opam: Update to 2.1.5.
>>
>>  gnu/local.mk                                  |   4 -
>>  gnu/packages/coq.scm                          | 152 +++----
>>  gnu/packages/ocaml.scm                        | 410 +++++++++++-------
>>  .../ocaml-dose3-Fix-for-ocaml-4.06.patch      |  52 ---
>>  .../ocaml-dose3-Install-mli-cmx-etc.patch     | 133 ------
>>  .../ocaml-dose3-add-unix-dependency.patch     |  25 --
>>  .../ocaml-dose3-dont-make-printconf.patch     |   9 -
>>  7 files changed, 331 insertions(+), 454 deletions(-)
>>  delete mode 100644 gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
>>  delete mode 100644 gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch
>>  delete mode 100644 gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch
>>  delete mode 100644 gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch
>>
>>
>> base-commit: 5db78e7c1b06d1b4892bdb3e153b95b21577271e
>
diff mbox series

Patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 4f8637418a..d9b4229729 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1666,10 +1666,6 @@  dist_patch_DATA =						\
   %D%/packages/patches/nvi-db4.patch				\
   %D%/packages/patches/nyacc-binary-literals.patch		\
   %D%/packages/patches/obs-modules-location.patch		\
-  %D%/packages/patches/ocaml-dose3-add-unix-dependency.patch	\
-  %D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch	\
-  %D%/packages/patches/ocaml-dose3-dont-make-printconf.patch	\
-  %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch	\
   %D%/packages/patches/ocaml-multiple-definitions.patch		\
   %D%/packages/patches/ocaml-4.07-dynamically-allocate-signal-stack.patch	\
   %D%/packages/patches/ocaml-4.09-dynamically-allocate-signal-stack.patch	\
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 81b30aa8ea..396c5851e2 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -713,7 +713,7 @@  (define-public ocaml-mccs
 (define-public ocaml-dose3
   (package
     (name "ocaml-dose3")
-    (version "5.0.1")
+    (version "7.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -722,29 +722,16 @@  (define-public ocaml-dose3
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0dxkw37gj8z45kd0dnrlfgpj8yycq0dphs8kjm9kvq9xc8rikxp3"))
-              (patches
-               (search-patches
-                "ocaml-dose3-add-unix-dependency.patch"
-                "ocaml-dose3-Fix-for-ocaml-4.06.patch"
-                "ocaml-dose3-dont-make-printconf.patch"
-                "ocaml-dose3-Install-mli-cmx-etc.patch"))))
-    (build-system ocaml-build-system)
-    (arguments
-     `(#:tests? #f                      ;the test suite requires python 2
-       #:configure-flags
-       ,#~(list (string-append "SHELL="
-                               #+(file-append (canonical-package bash-minimal)
-                                              "/bin/sh")))
-       #:make-flags
-       ,#~(list (string-append "LIBDIR=" #$output "/lib/ocaml/site-lib"))))
-    (propagated-inputs
-     (list ocaml-graph ocaml-cudf ocaml-extlib ocaml-re))
-    (native-inputs
-     (list perl
-           ocaml-extlib
-           ocamlbuild
-           ocaml-cppo))
+                "0hcjh68svicap7j9bghgkp49xa12qhxa1pygmrgc9qwm0m4dhirb"))))
+    (build-system dune-build-system)
+    (arguments `(#:package "dose3"))
+    (propagated-inputs (list ocaml-extlib
+                             ocaml-base64-boot
+                             ocaml-cudf
+                             ocaml-graph
+                             ocaml-re
+                             ocaml-stdlib-shims))
+    (native-inputs (list ocaml-ounit))
     (home-page "https://www.mancoosi.org/software/")
     (synopsis "Package distribution management framework")
     (description "Dose3 is a framework made of several OCaml libraries for
@@ -849,7 +836,7 @@  (define-public ocaml-opam-file-format
 (define ocaml-opam-core
   (package
     (name "ocaml-opam-core")
-    (version "2.1.3")
+    (version "2.1.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -858,7 +845,7 @@  (define ocaml-opam-core
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1mw535zsw7xlvpgwnk1dan76z3f7lh5imlg0s6kdyhfg0iqisjd7"))))
+                "0ckd87rcmcz11iyhhm5qnmy27jbdffx6n1fr06hvrqqrzi00jljh"))))
     (build-system dune-build-system)
     (arguments `(#:package "opam-core"
                  ;; tests are run with the opam package
@@ -1037,7 +1024,10 @@  (define-public opam
                (("diff opamroot-versions.test opamroot-versions.out") "run true")
                ;; Disable a failing test, probably because the repository we
                ;; replaced is not as expected
-               (("diff opamrt-big-upgrade.test opamrt-big-upgrade.out") "run true"))
+               (("diff opamrt-big-upgrade.test opamrt-big-upgrade.out") "run true")
+               ;; Disable a failing test because of missing sandboxing
+               ;; functionality
+               (("diff init.test init.out") "run true"))
              (substitute* "tests/reftests/dune"
                ;; Because of our changes to the previous file, we cannot check
                ;; it can be regenerated
@@ -1073,18 +1063,42 @@  (define-public opam
          ("which" ,which)
 
          ;; Data for tests
-         ("opam-repo-009e00fa" ,(opam-repo "009e00fa86300d11c311309a2544e5c6c3eb8de2"
-                                           "1wwy0rwrsjf4q10j1rh1dazk32fbzhzy6f7zl6qmndidx9b1bq7w"))
-         ("opam-repo-7090735c" ,(opam-repo "7090735c9d1dd2dc481c4128c5ef4d3667238f15"
-                                           "1bccsgjhlp64lmvfjfn6viywf3x73ji75myg9ssf1ij1fkmabn0z"))
-         ("opam-repo-a5d7cdc0" ,(opam-repo "a5d7cdc0c91452b0aef4fa71c331ee5237f6dddd"
-                                           "0z7kawqisy07088p5xjxwpvmvzlbj1d9cgdipsj90yx7nc5qh369"))
-         ("opam-repo-ad4dd344" ,(opam-repo "ad4dd344fe5cd1cab49ced49d6758a9844549fb4"
-                                           "1a1qj47kj8xjdnc4zc50ijrix1kym1n7k20n3viki80a7518baw8"))
-         ("opam-repo-c1d23f0e" ,(opam-repo "c1d23f0e17ec83a036ebfbad1c78311b898a2ca0"
-                                           "0j9abisx3ifzm66ci3p45mngmz4f0fx7yd9jjxrz3f8w5jffc9ii"))
-         ("opam-repo-f372039d" ,(opam-repo "f372039db86a970ef3e662adbfe0d4f5cd980701"
-                                           "0ld7fcry6ss6fmrpswvr6bikgx299w97h0gwrjjh7kd7rydsjdws")))))
+         ("opam-repo-0070613707"
+          ,(opam-repo "00706137074d536d2019d2d222fbe1bea929deda"
+                      "1gv1vvmfscj7wirfv6qncp8pf81wygnpzjwd0lyqcxm7g8r8lb4w"))
+         ("opam-repo-009e00fa"
+          ,(opam-repo "009e00fa86300d11c311309a2544e5c6c3eb8de2"
+                      "1wwy0rwrsjf4q10j1rh1dazk32fbzhzy6f7zl6qmndidx9b1bq7w"))
+         ("opam-repo-7090735c"
+          ,(opam-repo "7090735c9d1dd2dc481c4128c5ef4d3667238f15"
+                      "1bccsgjhlp64lmvfjfn6viywf3x73ji75myg9ssf1ij1fkmabn0z"))
+         ("opam-repo-a5d7cdc0"
+          ,(opam-repo "a5d7cdc0c91452b0aef4fa71c331ee5237f6dddd"
+                      "0z7kawqisy07088p5xjxwpvmvzlbj1d9cgdipsj90yx7nc5qh369"))
+         ("opam-repo-ad4dd344"
+          ,(opam-repo "ad4dd344fe5cd1cab49ced49d6758a9844549fb4"
+                      "1a1qj47kj8xjdnc4zc50ijrix1kym1n7k20n3viki80a7518baw8"))
+         ("opam-repo-c1842d168d"
+          ,(opam-repo "c1842d168de956caf06d7ac8588e65020d7594d8"
+                      "142y1ac7sprygyh91shcp0zcyfxjjkshi9g44qgg4rx60rbsbhai"))
+         ("opam-repo-c1d23f0e"
+          ,(opam-repo "c1d23f0e17ec83a036ebfbad1c78311b898a2ca0"
+                      "0j9abisx3ifzm66ci3p45mngmz4f0fx7yd9jjxrz3f8w5jffc9ii"))
+         ("opam-repo-f372039d"
+          ,(opam-repo "f372039db86a970ef3e662adbfe0d4f5cd980701"
+                      "0ld7fcry6ss6fmrpswvr6bikgx299w97h0gwrjjh7kd7rydsjdws"))
+         ("opam-repo-11ea1cb"
+          ,(opam-repo "11ea1cb6f2418b1f8a6679e4422771a04c9c3655"
+                      "1s4p0wfn3bx97yvm8xvj3yhzv2pz0jwml68g2ybv37hj9mpbrsq0"))
+         ("opam-repo-297366c"
+          ,(opam-repo "297366cd01c3aaf29b967bf0b34ccc7989d4d5b3"
+                      "1ysg69gys37nc2cxivs2ikh6xp0gj85if4rcrr874mqb9z12dm0j"))
+         ("opam-repo-3235916"
+          ,(opam-repo "3235916a162a59d7c82dac3fe24214975d48f1aa"
+                      "1yf73rv2n740a4s9g7a9k4j91b4k7al88nwnw9cdw0k2ncbmr486"))
+         ("opam-repo-de897adf36c4230dfea812f40c98223b31c4521a"
+          ,(opam-repo "de897adf36c4230dfea812f40c98223b31c4521a"
+                      "1m18x9gcwnbar8yv9sbfz8a3qpw412fp9cf4d6fb7syn0p0h96jw")))))
     (inputs (list ocaml-opam-client))
     (properties
      ;; OPAM is used as a tool and not as a library, we can use the OCaml 4.14
@@ -4443,8 +4457,7 @@  (define-public ocaml-base64
                (base32
                 "068hwdbpl7vx9jjpxdc6a10zqd8xa55j3xx7ga6fnwrlfsbs2pjj"))))
     (build-system dune-build-system)
-    (native-inputs
-     (list ocaml-alcotest ocaml-bos ocaml-rresult))
+    (native-inputs (list ocaml-alcotest ocaml-bos ocaml-rresult))
     (properties `((ocaml4.07-variant . ,(delay ocaml4.07-base64))))
     (home-page "https://github.com/mirage/ocaml-base64")
     (synopsis "Base64 encoding for OCaml")
@@ -4453,6 +4466,14 @@  (define-public ocaml-base64
 radix-64 representation.  It is specified in RFC 4648.")
     (license license:isc)))
 
+;; A variant without tests that is used to prevent a cyclic dependency when
+;; compiling ocaml-dose3.
+(define ocaml-base64-boot
+  (package
+    (inherit ocaml-base64)
+    (arguments `(#:tests? #f))
+    (native-inputs '())))
+
 (define-public ocaml4.07-base64
   (package-with-ocaml4.07
     (package
@@ -5325,27 +5346,22 @@  (define-public ocaml4.07-uuidm
 (define-public ocaml-graph
   (package
     (name "ocaml-graph")
-    (version "1.8.8")
+    (home-page "https://github.com/backtracking/ocamlgraph/")
+    (version "2.0.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "http://ocamlgraph.lri.fr/download/"
-                                  "ocamlgraph-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url home-page)
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0m9g16wrrr86gw4fz2fazrh8nkqms0n863w7ndcvrmyafgxvxsnr"))))
-    (build-system ocaml-build-system)
-    (arguments
-     `(#:install-target "install-findlib"
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'set-shell
-           (lambda* (#:key inputs #:allow-other-keys)
-             (setenv "CONFIG_SHELL"
-                     (search-input-file inputs "/bin/sh")))))))
-    (inputs (list lablgtk))
+                "1gjrsyyamvvn2rd9n9yjx6hsglhw0dbm4cgazq0dpx0bbr4inwc3"))))
+    (build-system dune-build-system)
+    (arguments `(#:package "ocamlgraph"))
+    (propagated-inputs (list ocaml-stdlib-shims))
+    (native-inputs (list ocaml-graphics))
     (properties `((upstream-name . "ocamlgraph")))
-    (home-page "https://ocamlgraph.lri.fr/")
     (synopsis "Graph library for OCaml")
     (description "OCamlgraph is a generic graph library for OCaml.")
     (license license:lgpl2.1)))
diff --git a/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch b/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
deleted file mode 100644
index 2c344af821..0000000000
--- a/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
+++ /dev/null
@@ -1,52 +0,0 @@ 
-From aeca7656f499d7f4595319858f242276920e31bb Mon Sep 17 00:00:00 2001
-From: Louis Gesbert <louis.gesbert@ocamlpro.com>
-Date: Sat, 2 Dec 2017 12:51:01 +0100
-Subject: [PATCH] Fix for ocaml 4.06
-
----
- common/criteria_lexer.mll | 8 ++++----
- common/util.ml            | 2 +-
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/common/criteria_lexer.mll b/common/criteria_lexer.mll
-index 71f9178..fc4eae3 100644
---- a/common/criteria_lexer.mll
-+++ b/common/criteria_lexer.mll
-@@ -18,7 +18,7 @@
-     let c = Lexing.lexeme_char lexbuf 2 in (* the delimiter can be any character *)
-     (* find the terminating delimiter *)
-     let endpos =
--      try String.index_from lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) c with
-+      try Bytes.index_from lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) c with
-       |Invalid_argument _ ->
-           raise (Format822.Syntax_error (
-             Format822.error lexbuf "String too short"))
-@@ -27,9 +27,9 @@
-             Format822.error lexbuf (Printf.sprintf "cannot find: %c" c)))
-     in
-     let len = endpos - (lexbuf.lex_start_pos + 3) in
--    let s = String.sub lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) len in
--    lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_start_pos + ((String.length s)+4);
--    s
-+    let s = Bytes.sub lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) len in
-+    lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_start_pos + ((Bytes.length s)+4);
-+    Bytes.to_string s
- 
- }
- 
-diff --git a/common/util.ml b/common/util.ml
-index 598f266..36ca3d1 100644
---- a/common/util.ml
-+++ b/common/util.ml
-@@ -87,7 +87,7 @@ module MakeMessages(X : sig val label : string end) = struct
-   let clean label =
-     try 
-       let s = Filename.chop_extension (Filename.basename label) in
--      String.capitalize s
-+      String.capitalize_ascii s
-     with Invalid_argument _ -> label
- 
-   let create ?(enabled=false) label =
--- 
-2.11.0
-
diff --git a/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch b/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch
deleted file mode 100644
index 41494e7b3c..0000000000
--- a/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch
+++ /dev/null
@@ -1,133 +0,0 @@ 
-From b5314c20d8e3caf62fe0dc96ad937a2950158b23 Mon Sep 17 00:00:00 2001
-From: Louis Gesbert <louis.gesbert@ocamlpro.com>
-Date: Thu, 2 Mar 2017 12:19:56 +0100
-Subject: [PATCH] Install mli, cmx, etc.
-
----
- Makefile | 26 +++++++++++++-------------
- 1 file changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 09464ff..5044d7f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -56,7 +56,7 @@ $(DOSELIBS)/cudf.%:
- 	@for i in _build/cudf/cudf.*; do \
- 	  if [ -e $$i ]; then \
- 	  cp $$i $(DOSELIBS) ; \
--	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+	  rm -f $(DOSELIBS)/*.mlpack ; \
- 	  fi ; \
- 	done
- 
-@@ -67,7 +67,7 @@ $(DOSELIBS)/common.%: common/*.ml common/*.mli
- 	  if [ -e $$i ]; then \
- 	  cp $$i $(DOSELIBS) ; \
- 		rm $$i ;\
--	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+	  rm -f $(DOSELIBS)/*.mlpack ; \
- 	  fi ; \
- 	done
- 
-@@ -78,7 +78,7 @@ $(DOSELIBS)/versioning.%: versioning/*.ml versioning/*.mli
- 	  if [ -e $$i ]; then \
- 	  cp $$i $(DOSELIBS) ; \
- 		rm $$i ;\
--	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+	  rm -f $(DOSELIBS)/*.mlpack ; \
- 	  fi ; \
- 	done
- 
-@@ -88,7 +88,7 @@ $(DOSELIBS)/algo.%: algo/*.ml algo/*.mli $(DOSELIBS)/common.%
- 	  if [ -e $$i ]; then \
- 	  cp $$i $(DOSELIBS) ; \
- 		rm $$i ;\
--	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+	  rm -f $(DOSELIBS)/*.mlpack ; \
- 	  fi ; \
- 	done
- 
-@@ -98,7 +98,7 @@ $(DOSELIBS)/debian.%: deb/*.ml deb/*.mli $(DOSELIBS)/pef.%
- 	  if [ -e $$i ]; then \
- 	  cp $$i $(DOSELIBS) ; \
- 		rm $$i ;\
--	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+	  rm -f $(DOSELIBS)/*.mlpack ; \
- 	  fi ; \
- 	done
- 
-@@ -108,7 +108,7 @@ $(DOSELIBS)/opam.%: opam/*.ml opam/*.mli $(DOSELIBS)/pef.%
- 	  if [ -e $$i ]; then \
- 	  cp $$i $(DOSELIBS) ; \
- 		rm $$i ;\
--	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+	  rm -f $(DOSELIBS)/*.mlpack ; \
- 	  fi ; \
- 	done
- 
-@@ -118,7 +118,7 @@ $(DOSELIBS)/npm.%: npm/*.ml npm/*.mli $(DOSELIBS)/versioning.% $(DOSELIBS)/pef.%
- 	  if [ -e $$i ]; then \
- 	  cp $$i $(DOSELIBS) ; \
- 		rm $$i ;\
--	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+	  rm -f $(DOSELIBS)/*.mlpack ; \
- 	  fi ; \
- 	done
- 
-@@ -128,7 +128,7 @@ $(DOSELIBS)/rpm.%: rpm/*.ml $(DOSELIBS)/algo.%
- 	  if [ -e $$i ]; then \
- 	  cp $$i $(DOSELIBS) ; \
- 		rm $$i ;\
--	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+	  rm -f $(DOSELIBS)/*.mlpack ; \
- 	  fi ; \
- 	done
- 
-@@ -138,7 +138,7 @@ $(DOSELIBS)/pef.%: pef/*.ml pef/*.mli
- 	  if [ -e $$i ]; then \
- 	  cp $$i $(DOSELIBS) ; \
- 		rm $$i ;\
--	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+	  rm -f $(DOSELIBS)/*.mlpack ; \
- 	  fi ; \
- 	done
- 
-@@ -148,7 +148,7 @@ $(DOSELIBS)/csw.%: opencsw/*.ml $(DOSELIBS)/versioning.%
- 	  if [ -e $$i ]; then \
- 	  cp $$i $(DOSELIBS) ; \
- 		rm $$i ;\
--	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+	  rm -f $(DOSELIBS)/*.mlpack ; \
- 	  fi ; \
- 	done
- 
-@@ -158,7 +158,7 @@ $(DOSELIBS)/doseparse.%: $(DOSELIBS)/pef.% $(DOSELIBS)/debian.%
- 	  if [ -e $$i ]; then \
- 	  cp $$i $(DOSELIBS) ; \
- 		rm $$i ;\
--	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx $(DOSELIBS)/*.ml ; \
-+	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.ml ; \
- 	  fi ; \
- 	done
- 
-@@ -168,7 +168,7 @@ $(DOSELIBS)/doseparseNoRpm.%: $(DOSELIBS)/pef.% $(DOSELIBS)/debian.%
- 	  if [ -e $$i ]; then \
- 			cp $$i $(DOSELIBS) ;\
- 			rm $$i ;\
--			rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ;\
-+			rm -f $(DOSELIBS)/*.mlpack ;\
- 	  fi ; \
- 	done
- 
-@@ -223,7 +223,7 @@ INSTALL_STUFF_ = META
- INSTALL_STUFF_ += $(wildcard _build/doselibs/*.cma _build/doselibs/*.cmi)
- INSTALL_STUFF_ += $(wildcard _build/doselibs/*.cmxa _build/doselibs/*.cmxs)
- INSTALL_STUFF_ += $(wildcard _build/doselibs/*.a)
--#INSTALL_STUFF_ += $(wildcard _build/*/*.mli)
-+INSTALL_STUFF_ += $(wildcard _build/doselibs/*.mli) $(wildcard _build/doselibs/*.cmti) $(wildcard _build/doselibs/*.cmx)
- INSTALL_STUFF_ += $(wildcard _build/rpm/*.so)
- 
- exclude_cudf = $(wildcard _build/doselibs/*cudf* _build/cudf/*)
--- 
-2.11.0
-
diff --git a/gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch b/gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch
deleted file mode 100644
index d2cc44c784..0000000000
--- a/gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch
+++ /dev/null
@@ -1,25 +0,0 @@ 
-From b94cf24739818e5aff397e0a83b19ea32dc81f42 Mon Sep 17 00:00:00 2001
-From: Louis Gesbert <louis.gesbert@ocamlpro.com>
-Date: Tue, 6 Feb 2018 10:15:45 +0100
-Subject: [PATCH 3/3] Add "unix" as dependency to dose3.common in META.in
-
----
- META.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/META.in b/META.in
-index aa2cd8d..0f9d337 100644
---- a/META.in
-+++ b/META.in
-@@ -8,7 +8,7 @@ package "common" (
- version = "@PACKAGE_VERSION@"
- archive(byte) = "common.cma"
- archive(native) = "common.cmxa"
--requires = "extlib, re.pcre, cudf, @ZIP@, @BZ2@"
-+requires = "extlib, re.pcre, cudf, unix, @ZIP@, @BZ2@"
- )
- 
- package "algo" (
--- 
-2.11.0
-
diff --git a/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch b/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch
deleted file mode 100644
index 84b6a3b81b..0000000000
--- a/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch
+++ /dev/null
@@ -1,9 +0,0 @@ 
---- a/configure
-+++ b/configure
-@@ -6552,6 +6552,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
- $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
- fi
--
--
--make printconf