Subject: [bug#45498] [PATCH 09/12] gnu: Add ocaml-odoc.

From: Julien Lepiller <[email-masked]>
Date: Mon, 28 Dec 2020 15:02:05 +0100

Le Mon, 28 Dec 2020 13:47:15 +0100,
pukkamustard <[email-masked]> a écrit :

> * gnu/packages/ocaml.scm (ocaml-odoc): New variable.
>   (ocaml4.07-odoc): Inherit from ocaml-odoc and update to 1.5.1.
> ---
>  gnu/packages/ocaml.scm | 70
> ++++++++++++++++++++++++++++++------------ 1 file changed, 50
> insertions(+), 20 deletions(-)
> 
> diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
> index 6714c266d1..3d94f7c221 100644
> --- a/gnu/packages/ocaml.scm
> +++ b/gnu/packages/ocaml.scm
> @@ -71,6 +71,7 @@
>    #:use-module (gnu packages time)
>    #:use-module (gnu packages tls)
>    #:use-module (gnu packages virtualization)
> +  #:use-module (gnu packages web)
>    #:use-module (gnu packages web-browsers)
>    #:use-module (gnu packages xml)
>    #:use-module (gnu packages xorg)
> @@ -5691,10 +5692,10 @@ Usage is simple - add package bisect_ppx when
> building tests, run your tests, then run the Bisect_ppx report tool
> on the generated visitation files.") (license license:mpl2.0)))
>  
> -(define-public ocaml4.07-odoc
> +(define-public ocaml-odoc
>    (package
> -    (name "ocaml4.07-odoc")
> -    (version "1.4.2")
> +    (name "ocaml-odoc")
> +    (version "1.5.2")
>      (source
>       (origin
>         (method git-fetch)
> @@ -5703,26 +5704,23 @@ then run the Bisect_ppx report tool on the
> generated visitation files.") (commit version)))
>         (file-name (git-file-name name version))
>         (sha256
> -        (base32
> "0rvhx139jx6wmlfz355mja6mk03x4swq1xxvk5ky6jzhalq3cf5i"))))
> +        (base32
> "0fqfyz48q7ss5bc4c5phmp4s3ka3vc08b8gfk8fvyryvb4bq27jm"))))
> (build-system dune-build-system)
> -    (arguments
> -     `(#:ocaml ,ocaml-4.07
> -       #:findlib ,ocaml4.07-findlib
> -       #:dune ,ocaml4.07-dune))
>      (inputs
> -     `(("ocaml-alcotest" ,(package-with-ocaml4.07 ocaml-alcotest))
> -       ("ocaml-markup" ,(package-with-ocaml4.07 ocaml-markup0.8.0))
> -       ("ocaml-sexplib" ,ocaml4.07-sexplib)
> -       ("ocaml-re" ,(package-with-ocaml4.07 ocaml-re))
> -       ("ocaml-uutf" ,(package-with-ocaml4.07 ocaml-uutf))))
> +     `(("ocaml-alcotest" ,ocaml-alcotest)
> +       ("ocaml-markup" ,ocaml-markup)
> +       ("ocaml-sexplib" ,ocaml-sexplib)
> +       ("ocaml-re" ,ocaml-re)
> +       ("ocaml-uutf" ,ocaml-uutf)))
>      (native-inputs
> -     `(("ocaml-astring" ,(package-with-ocaml4.07 ocaml-astring))
> -       ("ocaml-cmdliner" ,(package-with-ocaml4.07 ocaml-cmdliner))
> -       ("ocaml-cppo" ,(package-with-ocaml4.07 ocaml-cppo))
> -       ("ocaml-fpath" ,(package-with-ocaml4.07 ocaml-fpath))
> -       ("ocaml-result" ,(package-with-ocaml4.07 ocaml-result))
> -       ("ocaml-tyxml" ,ocaml4.07-tyxml)
> -       ("ocaml-bisect-ppx" ,(package-with-ocaml4.07
> ocaml-bisect-ppx))))
> +     `(("ocaml-astring" ,ocaml-astring)
> +       ("ocaml-cmdliner" ,ocaml-cmdliner)
> +       ("ocaml-cppo" ,ocaml-cppo)
> +       ("ocaml-fpath" ,ocaml-fpath)
> +       ("ocaml-result" ,ocaml-result)
> +       ("ocaml-tyxml" ,ocaml-tyxml)
> +       ("ocaml-bisect-ppx" ,ocaml-bisect-ppx)
> +       ("tidy-html" ,tidy-html)))
>      (home-page "https://github.com/ocaml/odoc")
>      (synopsis "OCaml documentation generator")
>      (description "Odoc is a documentation generator for OCaml.  It
> reads @@ -5734,6 +5732,38 @@ advantage over ocamldoc is an accurate
> cross-referencer, which handles the complexity of the OCaml module
> system.") (license license:isc)))

Similarly, I would add a property to the previous package, so
package-with-ocaml4.07 works properly.
 
> +(define-public ocaml4.07-odoc
> +  (package-with-ocaml4.07
> +   (package
> +     (inherit ocaml-odoc)
> +     (name "ocaml-odoc")
> +     ;; version 1.5.2 requires ocaml-markdown 1.0.0 which does not
> compile
> +     ;; with old version of dune used in package-with-ocaml4.07
> +     (version "1.5.1")
> +     (source
> +      (origin
> +        (method git-fetch)
> +        (uri (git-reference
> +              (url "https://github.com/ocaml/odoc")
> +              (commit version)))
> +        (file-name (git-file-name name version))
> +        (sha256
> +         (base32
> "0z2nisg1vb5xlk41hqw8drvj90v52wli7zvnih6a844cg6xsvvj2"))))
> +     (inputs
> +      `(("ocaml-alcotest" ,ocaml-alcotest)
> +        ("ocaml-markup" ,ocaml-markup0.8.0)
> +        ("ocaml-sexplib" ,ocaml4.07-sexplib)
> +        ("ocaml-re" ,ocaml-re)
> +        ("ocaml-uutf" ,ocaml-uutf)))
> +     (native-inputs
> +      `(("ocaml-astring" ,ocaml-astring)
> +        ("ocaml-cmdliner" ,ocaml-cmdliner)
> +        ("ocaml-cppo" ,ocaml-cppo)
> +        ("ocaml-fpath" ,ocaml-fpath)
> +        ("ocaml-result" ,ocaml-result)
> +        ("ocaml-tyxml" ,ocaml4.07-tyxml)
> +        ("ocaml-bisect-ppx" ,ocaml-bisect-ppx))))))
> +
>  (define-public ocaml4.07-fftw3
>    (package
>      (name "ocaml4.07-fftw3")