(address . guix-patches@gnu.org)
Hi Guix!
this small patch series update ocaml to 4.11.1. The first patch adds
ocaml 4.11.1, the second adds findlib for 4.09, the third add
package-with-ocaml4.09 (along with ocaml4.09-dune, which I can't put in
a separate patch without breaking something). Then, three patches fix
the build of three packages (with these patches, they build fine with
4.09 and 4.11). The last patch performs the final switch to 4.11.
Easier than I expected! :)
Note that with that, previously unreproducible packages are
reproducible!
From 2dc52a0077ffe1f0b416032fb1dfbf035f82c34e Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Thu, 15 Oct 2020 22:02:56 +0200
Subject: [PATCH 1/7] gnu: ocaml: Update to 4.11.1.
* gnu/packages/ocaml.scm (ocaml): Update to 4.11.1.
---
gnu/packages/ocaml.scm | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
Toggle diff (49 lines)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 4cc530509a..be2f486179 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -132,10 +132,10 @@
"/lib/ocaml/site-lib"))
#:phases (modify-phases %standard-phases (delete 'configure))))
-(define-public ocaml-4.09
+(define-public ocaml-4.11
(package
(name "ocaml")
- (version "4.09.0")
+ (version "4.11.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -144,7 +144,7 @@
"/ocaml-" version ".tar.xz"))
(sha256
(base32
- "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj"))))
+ "0k4521c0p10c5ams6vjv5qkkjhmpkb0bfn04llcz46ah0f3r2jpa"))))
(build-system gnu-build-system)
(native-search-paths
(list (search-path-specification
@@ -202,6 +202,20 @@ functional, imperative and object-oriented styles of programming.")
;; distributed under lgpl2.0.
(license (list license:qpl license:lgpl2.0))))
+(define-public ocaml-4.09
+ (package
+ (inherit ocaml-4.11)
+ (version "4.09.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://caml.inria.fr/pub/distrib/ocaml-"
+ (version-major+minor version)
+ "/ocaml-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj"))))))
+
(define-public ocaml-4.07
(package
(inherit ocaml-4.09)
--
2.28.0
From 2b5fa1b7f30e7ff0315a752e10e87930e72dbb8e Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Thu, 15 Oct 2020 22:04:36 +0200
Subject: [PATCH 2/7] gnu: Add ocaml4.09-findlib.
* gnu/packages/ocaml.scm (ocaml4.09-findlib): New variable.
---
gnu/packages/ocaml.scm | 8 ++++++++
1 file changed, 8 insertions(+)
Toggle diff (21 lines)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index be2f486179..84daa8afca 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -1007,6 +1007,14 @@ compilers that can directly deal with packages.")
`(("m4" ,m4)
("ocaml" ,ocaml-4.07)))))
+(define-public ocaml4.09-findlib
+ (package
+ (inherit ocaml-findlib)
+ (name "ocaml4.09-findlib")
+ (native-inputs
+ `(("m4" ,m4)
+ ("ocaml" ,ocaml-4.09)))))
+
;; note that some tests may hang for no obvious reason.
(define-public ocaml-ounit
(package
--
2.28.0
From 447de03a51a39fa7a7d8c5216c8ba23e632d0b88 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Fri, 16 Oct 2020 17:01:40 +0200
Subject: [PATCH 4/7] gnu: laby: Update to 0.7.0.
* gnu/packages/games.scm (laby): Update to 0.7.0.
---
gnu/packages/games.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Toggle diff (24 lines)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index d473baa335..b03e4ebfea 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -5119,7 +5119,7 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.")
(define-public laby
(package
(name "laby")
- (version "0.6.4")
+ (version "0.7.0")
(source
(origin (method git-fetch)
(uri (git-reference
@@ -5128,7 +5128,7 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.")
(file-name (git-file-name name version))
(sha256
(base32
- "12fq9hhrxpzgfinmj9ra9ckss9yficwdlrmgjvvsq7agvh3sgyl1"))
+ "1y6nfxcjhqg9bb81hs0wijg7kcwk5kff81rgd8bsv5ps7ia9nj6b"))
(patches (search-patches "laby-make-install.patch"))))
(build-system gnu-build-system)
(inputs
--
2.28.0
From cb1c4f34d558b3b0b3cfc2d21d77c3d703f6013c Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Fri, 16 Oct 2020 17:02:56 +0200
Subject: [PATCH 5/7] gnu: ocaml-ppx-tools-versioned: Use release profile.
* gnu/packages/ocaml.scm (ocaml-ppx-tools-versioned): Use release
profile.
---
gnu/packages/ocaml.scm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Toggle diff (16 lines)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index e3ddb36a4e..15ca326376 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -1464,7 +1464,8 @@ functions to the next and/or previous version.")
"07lnj4yzwvwyh5fhpp1dxrys4ddih15jhgqjn59pmgxinbnddi66"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."))
+ `(#:test-target "."
+ #:package "ppx_tools_versioned"))
(propagated-inputs
`(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)))
(properties `((upstream-name . "ppx_tools_versioned")))
--
2.28.0
From 6b08d42d9ebaa3ee6da4a9f8aa9cc6d70cf19231 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Fri, 16 Oct 2020 17:06:53 +0200
Subject: [PATCH 6/7] gnu: ocamlify: Perform bootstrap build.
* gnu/packages/ocaml.scm (ocamlify): Perform bootstrap build.
---
gnu/packages/ocaml.scm | 29 ++++++++++++++++++-----------
1 file changed, 18 insertions(+), 11 deletions(-)
Toggle diff (46 lines)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 15ca326376..660aeef25a 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -2433,21 +2433,28 @@ radix-64 representation. It is specified in RFC 4648.")
(base32 "1f0fghvlbfryf5h3j4as7vcqrgfjb4c8abl5y0y5h069vs4kp5ii"))))
(build-system ocaml-build-system)
(arguments
- `(#:phases
+ `(#:tests? #f; no tests
+ #:phases
(modify-phases %standard-phases
- (add-after 'unpack 'disable-safe-string
- ;; Work around ‘Error: This expression has type string but an
- ;; expression was expected of type bytes’ since OCaml 4.06.
+ (delete 'configure)
+ (replace 'build
+ ;; This package uses pre-generated setup.ml by oasis, but is
+ ;; a dependency of oasis. the pre-generated setup.ml is broken
+ ;; with recent versions of OCaml, so we perform a bootstrap instead.
(lambda _
- (setenv "OCAMLPARAM" "safe-string=0,_")
+ (substitute* "src/OCamlifyConfig.ml.ab"
+ (("$pkg_version") ,version))
+ (rename-file "src/OCamlifyConfig.ml.ab" "src/OCamlifyConfig.ml")
+ (with-directory-excursion "src"
+ (invoke "ocamlc" "OCamlifyConfig.ml" "ocamlify.ml" "-o"
+ "ocamlify"))
#t))
- (delete 'check) ; tests are run during the build
- (replace 'configure
+ (replace 'install
(lambda* (#:key outputs #:allow-other-keys)
- (invoke "ocaml" "setup.ml" "-configure" "--prefix"
- (assoc-ref outputs "out")))))))
- (native-inputs
- `(("ocamlbuild" ,ocamlbuild)))
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+ (mkdir-p bin)
+ (install-file "src/ocamlify" bin)
+ #t))))))
(home-page "https://forge.ocamlcore.org/projects/ocamlify")
(synopsis "Include files in OCaml code")
(description "OCamlify creates OCaml source code by including
--
2.28.0
From 0c2ba2bf29d4a72fe05710a84ca2ca548801702a Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Fri, 16 Oct 2020 17:07:45 +0200
Subject: [PATCH 7/7] gnu: ocaml: Switch to 4.11 by default.
* gnu/packages/ocaml.scm (ocaml): Switch to 4.11 by default.
---
gnu/packages/ocaml.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Toggle diff (15 lines)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 660aeef25a..e486a09fbb 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -243,7 +243,7 @@ functional, imperative and object-oriented styles of programming.")
"--prefix" out
"--mandir" mandir))))))))))
-(define-public ocaml ocaml-4.09)
+(define-public ocaml ocaml-4.11)
(define-public ocamlbuild
(package
--
2.28.0