diff options
author | Julien Lepiller <julien@lepiller.eu> | 2020-12-08 15:03:47 +0100 |
---|---|---|
committer | Julien Lepiller <julien@lepiller.eu> | 2020-12-08 16:53:07 +0100 |
commit | ccc4d287b7bd2a3ddea7b7f2c1ea2a722e68115c (patch) | |
tree | eae73548e3f438c6ea3af85c13564c561ce5d28c | |
parent | a8dccd4bdc1e58219d4ba08fe1649bf0b8325f44 (diff) | |
download | guix-ccc4d287b7bd2a3ddea7b7f2c1ea2a722e68115c.tar.gz guix-ccc4d287b7bd2a3ddea7b7f2c1ea2a722e68115c.zip |
guix: opam: Add coq support in the importer.
* guix/import/opam.scm (get-opam-repository): Add support for coq
repositories.
(ocaml-name->guix-name): Properly name coq package.
* doc/guix.texi (Invoking guix import): Document it.
-rw-r--r-- | doc/guix.texi | 19 | ||||
-rw-r--r-- | guix/import/opam.scm | 8 |
2 files changed, 27 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 0e647a284c..7960143723 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11291,6 +11291,25 @@ in Guix. @cindex OCaml Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package repository used by the OCaml community. + +Additional options include: + +@table @code +@item --recursive +@itemx -r +Traverse the dependency graph of the given upstream package recursively +and generate package expressions for all those packages that are not yet +in Guix. +@item --repo +Select the given repository (a repository name). Possible values include: +@itemize +@item @code{opam}, the default opam repository, +@item @code{coq} or @code{coq-released}, the stable repository for coq packages, +@item @code{coq-core-dev}, the repository that contains development versions of coq, +@item @code{coq-extra-dev}, the repository that contains development versions + of coq packages. +@end itemize +@end table @end table The structure of the @command{guix import} code is modular. It would be diff --git a/guix/import/opam.scm b/guix/import/opam.scm index 6f5c95df3b..54143f83ca 100644 --- a/guix/import/opam.scm +++ b/guix/import/opam.scm @@ -126,12 +126,19 @@ path to the repository." (let ((url (cond ((or (not repo) (equal? repo 'opam)) "https://github.com/ocaml/opam-repository") + ((string-prefix? "coq-" (symbol->string repo)) + "https://github.com/coq/opam-coq-archive") + ((equal? repo 'coq) "https://github.com/coq/opam-coq-archive") (else (throw 'unknown-repository repo))))) (receive (location commit _) (update-cached-checkout url) (cond ((or (not repo) (equal? repo 'opam)) location) + ((equal? repo 'coq) + (string-append location "/released")) + ((string-prefix? "coq-" (symbol->string repo)) + (string-append location "/" (substring (symbol->string repo) 4))) (else location))))) (define (latest-version versions) @@ -168,6 +175,7 @@ path to the repository." (substitute-char (cond ((equal? name "ocamlfind") "ocaml-findlib") + ((equal? name "coq") name) ((string-prefix? "ocaml" name) name) ((string-prefix? "conf-" name) (substring name 5)) (else (string-append "ocaml-" name))) |