* [bug#35150] [PATCH 2/9] import: opam: Use dune-build-system when possible.
2019-04-04 19:16 ` [bug#35150] [PATCH 1/9] import: opam: Add more patterns to opam file parser Julien Lepiller
@ 2019-04-04 19:16 ` Julien Lepiller
2019-04-04 19:16 ` [bug#35150] [PATCH 3/9] gnu: Add ocaml-opam-file-format Julien Lepiller
` (7 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Julien Lepiller @ 2019-04-04 19:16 UTC (permalink / raw)
To: 35150
* guix/import/opam.scm (opam->guix-package): Detect when dune can be used.
---
guix/import/opam.scm | 80 ++++++++++++++++++++++++++------------------
1 file changed, 48 insertions(+), 32 deletions(-)
diff --git a/guix/import/opam.scm b/guix/import/opam.scm
index b5069cd2f3..5dcc0e97a3 100644
--- a/guix/import/opam.scm
+++ b/guix/import/opam.scm
@@ -247,39 +247,55 @@ path to the repository."
(url-dict (metadata-ref opam-content "url"))
(source-url (metadata-ref url-dict "src"))
(requirements (metadata-ref opam-content "depends"))
- (dependencies (dependency-list->names requirements))
+ (dependencies (filter
+ (lambda (name)
+ (not (member name '("dune" "jbuilder"))))
+ (dependency-list->names requirements)))
+ (native-dependencies (depends->native-inputs requirements))
(inputs (dependency-list->inputs (depends->inputs requirements)))
- (native-inputs (dependency-list->inputs (depends->native-inputs requirements))))
- (call-with-temporary-output-file
- (lambda (temp port)
- (and (url-fetch source-url temp)
- (values
- `(package
- (name ,(ocaml-name->guix-name name))
- (version ,(if (string-prefix? "v" version)
- (substring version 1)
- version))
- (source
- (origin
- (method url-fetch)
- (uri ,source-url)
- (sha256 (base32 ,(guix-hash-url temp)))))
- (build-system ocaml-build-system)
- ,@(if (null? inputs)
- '()
- `((inputs ,(list 'quasiquote inputs))))
- ,@(if (null? native-inputs)
- '()
- `((native-inputs ,(list 'quasiquote native-inputs))))
- ,@(if (equal? name (guix-name->opam-name (ocaml-name->guix-name name)))
- '()
- `((properties
- ,(list 'quasiquote `((upstream-name . ,name))))))
- (home-page ,(metadata-ref opam-content "homepage"))
- (synopsis ,(metadata-ref opam-content "synopsis"))
- (description ,(metadata-ref opam-content "description"))
- (license #f))
- dependencies))))))
+ (native-inputs (dependency-list->inputs
+ ;; Do not add dune nor jbuilder since they are
+ ;; implicit inputs of the dune-build-system.
+ (filter
+ (lambda (name)
+ (not (member name '("dune" "jbuilder"))))
+ native-dependencies))))
+ ;; If one of these are required at build time, it means we
+ ;; can use the much nicer dune-build-system.
+ (let ((use-dune? (or (member "dune" native-dependencies)
+ (member "jbuilder" native-dependencies))))
+ (call-with-temporary-output-file
+ (lambda (temp port)
+ (and (url-fetch source-url temp)
+ (values
+ `(package
+ (name ,(ocaml-name->guix-name name))
+ (version ,(if (string-prefix? "v" version)
+ (substring version 1)
+ version))
+ (source
+ (origin
+ (method url-fetch)
+ (uri ,source-url)
+ (sha256 (base32 ,(guix-hash-url temp)))))
+ (build-system ,(if use-dune?
+ 'dune-build-system
+ 'ocaml-build-system))
+ ,@(if (null? inputs)
+ '()
+ `((inputs ,(list 'quasiquote inputs))))
+ ,@(if (null? native-inputs)
+ '()
+ `((native-inputs ,(list 'quasiquote native-inputs))))
+ ,@(if (equal? name (guix-name->opam-name (ocaml-name->guix-name name)))
+ '()
+ `((properties
+ ,(list 'quasiquote `((upstream-name . ,name))))))
+ (home-page ,(metadata-ref opam-content "homepage"))
+ (synopsis ,(metadata-ref opam-content "synopsis"))
+ (description ,(metadata-ref opam-content "description"))
+ (license #f))
+ dependencies)))))))
(define (opam-recursive-import package-name)
(recursive-import package-name #f
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#35150] [PATCH 3/9] gnu: Add ocaml-opam-file-format.
2019-04-04 19:16 ` [bug#35150] [PATCH 1/9] import: opam: Add more patterns to opam file parser Julien Lepiller
2019-04-04 19:16 ` [bug#35150] [PATCH 2/9] import: opam: Use dune-build-system when possible Julien Lepiller
@ 2019-04-04 19:16 ` Julien Lepiller
2019-04-04 19:16 ` [bug#35150] [PATCH 4/9] gnu: ocaml-cmdliner: Update to 1.0.3 Julien Lepiller
` (6 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Julien Lepiller @ 2019-04-04 19:16 UTC (permalink / raw)
To: 35150
* gnu/packages/ocaml.scm (ocaml-opam-file-format): New variable.
---
gnu/packages/ocaml.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 7bebf3921b..3b98de3ed7 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -302,6 +302,33 @@ functional, imperative and object-oriented styles of programming.")
for building OCaml library and programs.")
(license license:lgpl2.1+)))
+(define-public ocaml-opam-file-format
+ (package
+ (name "ocaml-opam-file-format")
+ (version "2.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ocaml/opam-file-format")
+ (commit version)))
+ (sha256
+ (base32
+ "0fqb99asnair0043hhc8r158d6krv5nzvymd0xwycr5y72yrp0hv"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:tests? #f; No tests
+ #:make-flags (list (string-append "LIBDIR=" (assoc-ref %outputs "out")
+ "/lib/ocaml/site-lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (home-page "https://opam.ocaml.org")
+ (synopsis "Parser and printer for the opam file syntax")
+ (description "This package contains a parser and a pretty-printer for
+the opam file fomat.")
+ ;; With static-linking exception
+ (license license:lgpl2.1+)))
+
(define-public opam
(package
(name "opam")
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#35150] [PATCH 4/9] gnu: ocaml-cmdliner: Update to 1.0.3.
2019-04-04 19:16 ` [bug#35150] [PATCH 1/9] import: opam: Add more patterns to opam file parser Julien Lepiller
2019-04-04 19:16 ` [bug#35150] [PATCH 2/9] import: opam: Use dune-build-system when possible Julien Lepiller
2019-04-04 19:16 ` [bug#35150] [PATCH 3/9] gnu: Add ocaml-opam-file-format Julien Lepiller
@ 2019-04-04 19:16 ` Julien Lepiller
2019-04-04 19:16 ` [bug#35150] [PATCH 5/9] gnu: Add ocaml-extlib Julien Lepiller
` (5 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Julien Lepiller @ 2019-04-04 19:16 UTC (permalink / raw)
To: 35150
* gnu/packages/ocaml.scm (ocaml-cmdliner): Update to 1.0.3.
---
gnu/packages/ocaml.scm | 30 ++++++++++++++++++------------
1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 3b98de3ed7..839dc9fea1 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -1640,32 +1640,28 @@ spans without being subject to operating system calendar time adjustments.")
(define-public ocaml-cmdliner
(package
(name "ocaml-cmdliner")
- (version "1.0.2")
+ (version "1.0.3")
(source (origin
(method url-fetch)
(uri (string-append "http://erratique.ch/software/cmdliner/releases/"
"cmdliner-" version ".tbz"))
(sha256
(base32
- "18jqphjiifljlh9jg8zpl6310p3iwyaqphdkmf89acyaix0s4kj1"))))
+ "0g3w4hvc1cx9x2yp5aqn6m2rl8lf9x1dn754hfq8m1sc1102lxna"))))
(build-system ocaml-build-system)
(inputs
`(("ocaml-result" ,ocaml-result)))
(native-inputs
- `(("ocamlbuild" ,ocamlbuild)
- ("opam" ,opam)))
+ `(("ocamlbuild" ,ocamlbuild)))
(arguments
`(#:tests? #f
- #:build-flags '("native=true" "native-dynlink=true")
+ #:make-flags (list (string-append "LIBDIR=" (assoc-ref %outputs "out")
+ "/lib/ocaml/site-lib/cmdliner"))
#:phases
(modify-phases %standard-phases
- (replace 'install
- ;; The makefile says 'adjust on cli invocation'
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (invoke "make" "install" (string-append "PREFIX=" out))
- #t)))
(delete 'configure))))
+ (properties
+ `((ocaml4.02-variant . ,(delay ocaml4.02-cmdliner))))
(home-page "http://erratique.ch/software/cmdliner")
(synopsis "Declarative definition of command line interfaces for OCaml")
(description "Cmdliner is a module for the declarative definition of command
@@ -1677,7 +1673,17 @@ most of the POSIX and GNU conventions.")
(license license:bsd-3)))
(define-public ocaml4.02-cmdliner
- (package-with-ocaml4.02 ocaml-cmdliner))
+ (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-cmdliner))))
+ (package
+ (inherit base)
+ (version "1.0.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://erratique.ch/software/cmdliner/releases/"
+ "cmdliner-" version ".tbz"))
+ (sha256
+ (base32
+ "18jqphjiifljlh9jg8zpl6310p3iwyaqphdkmf89acyaix0s4kj1")))))))
(define-public ocaml-fmt
(package
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#35150] [PATCH 5/9] gnu: Add ocaml-extlib.
2019-04-04 19:16 ` [bug#35150] [PATCH 1/9] import: opam: Add more patterns to opam file parser Julien Lepiller
` (2 preceding siblings ...)
2019-04-04 19:16 ` [bug#35150] [PATCH 4/9] gnu: ocaml-cmdliner: Update to 1.0.3 Julien Lepiller
@ 2019-04-04 19:16 ` Julien Lepiller
2019-04-04 19:16 ` [bug#35150] [PATCH 6/9] gnu: Add ocaml-cudf Julien Lepiller
` (4 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Julien Lepiller @ 2019-04-04 19:16 UTC (permalink / raw)
To: 35150
* gnu/packages/ocaml.scm (ocaml-extlib): New variable.
---
gnu/packages/ocaml.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 839dc9fea1..023f8efa69 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -302,6 +302,33 @@ functional, imperative and object-oriented styles of programming.")
for building OCaml library and programs.")
(license license:lgpl2.1+)))
+(define-public ocaml-extlib
+ (package
+ (name "ocaml-extlib")
+ (version "1.7.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://ygrek.org.ua/p/release/ocaml-extlib/"
+ "extlib-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0wfs20v1yj5apdbj7214wdsr17ayh0qqq7ihidndvc8nmmwfa1dz"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (native-inputs
+ `(("ocaml-cppo" ,ocaml-cppo)))
+ (home-page "https://github.com/ygrek/ocaml-extlib")
+ (synopsis "Complete and small extension for OCaml standard library")
+ (description "This library adds new functions to OCaml standard library
+modules, modifies some functions in order to get better performances or
+safety (tail-recursive) and also provides new modules which should be useful
+for day to day programming.")
+ ;; With static-linking exception
+ (license license:lgpl2.1+)))
+
(define-public ocaml-opam-file-format
(package
(name "ocaml-opam-file-format")
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#35150] [PATCH 6/9] gnu: Add ocaml-cudf.
2019-04-04 19:16 ` [bug#35150] [PATCH 1/9] import: opam: Add more patterns to opam file parser Julien Lepiller
` (3 preceding siblings ...)
2019-04-04 19:16 ` [bug#35150] [PATCH 5/9] gnu: Add ocaml-extlib Julien Lepiller
@ 2019-04-04 19:16 ` Julien Lepiller
2019-04-04 19:16 ` [bug#35150] [PATCH 7/9] gnu: Add ocaml-mccs Julien Lepiller
` (3 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Julien Lepiller @ 2019-04-04 19:16 UTC (permalink / raw)
To: 35150
* gnu/packages/ocaml.scm (ocaml-cudf): New variable.
---
gnu/packages/ocaml.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 023f8efa69..263a318e58 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -329,6 +329,40 @@ for day to day programming.")
;; With static-linking exception
(license license:lgpl2.1+)))
+(define-public ocaml-cudf
+ (package
+ (name "ocaml-cudf")
+ (version "0.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri "https://gforge.inria.fr/frs/download.php/36602/cudf-0.9.tar.gz")
+ (sha256
+ (base32
+ "0771lwljqwwn3cryl0plny5a5dyyrj4z6bw66ha5n8yfbpcy8clr"))))
+ (build-system ocaml-build-system)
+ (propagated-inputs `(("ocaml-extlib" ,ocaml-extlib)))
+ (native-inputs
+ `(("perl" ,perl)
+ ("ocamlbuild" ,ocamlbuild)
+ ("ocaml-ounit" ,ocaml-ounit)))
+ (arguments
+ `(#:make-flags
+ (list
+ "all" "opt"
+ (string-append "BINDIR=" (assoc-ref %outputs "out")
+ "/bin"))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (home-page "http://www.mancoosi.org/cudf/")
+ (synopsis "CUDF library (part of the Mancoosi tools)")
+ (description "CUDF (for Common Upgradeability Description Format) is a
+format for describing upgrade scenarios in package-based Free and Open Source
+Software distribution.")
+ ;; With static-linking exception
+ (license license:lgpl2.1+)))
+
(define-public ocaml-opam-file-format
(package
(name "ocaml-opam-file-format")
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#35150] [PATCH 7/9] gnu: Add ocaml-mccs.
2019-04-04 19:16 ` [bug#35150] [PATCH 1/9] import: opam: Add more patterns to opam file parser Julien Lepiller
` (4 preceding siblings ...)
2019-04-04 19:16 ` [bug#35150] [PATCH 6/9] gnu: Add ocaml-cudf Julien Lepiller
@ 2019-04-04 19:16 ` Julien Lepiller
2019-04-04 19:16 ` [bug#35150] [PATCH 8/9] gnu: Add ocaml-dose3 Julien Lepiller
` (2 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Julien Lepiller @ 2019-04-04 19:16 UTC (permalink / raw)
To: 35150
* gnu/packages/ocaml.scm (ocaml-mccs): New variable.
---
gnu/packages/ocaml.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 263a318e58..04d5a84d1a 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -363,6 +363,34 @@ Software distribution.")
;; With static-linking exception
(license license:lgpl2.1+)))
+(define-public ocaml-mccs
+ (package
+ (name "ocaml-mccs")
+ (version "1.1+9")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/AltGr/ocaml-mccs")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1i0hhkrqi7rqlainlg5pc4hibbx6b5dp3x99gmav8c3sbfvlk9mc"))))
+ (build-system dune-build-system)
+ (propagated-inputs `(("ocaml-cudf" ,ocaml-cudf)))
+ (home-page "http://www.i3s.unice.fr/~cpjm/misc/")
+ (synopsis "Upgrade path problem solver")
+ (description "Mccs (Multi Criteria CUDF Solver) is a CUDF problem solver.
+Mccs take as input a CUDF problem and computes the best solution according to
+a set of criteria. It relies on a Integer Programming solver or a
+Pseudo Boolean solver to achieve its task. Mccs can use a wide set of
+underlying solvers like Cplex, Gurobi, Lpsolver, Glpk, CbC, SCIP or WBO.")
+ (license (list
+ license:bsd-3
+ license:gpl3+
+ ;; With static-linking exception
+ license:lgpl2.1+))))
+
(define-public ocaml-opam-file-format
(package
(name "ocaml-opam-file-format")
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#35150] [PATCH 8/9] gnu: Add ocaml-dose3.
2019-04-04 19:16 ` [bug#35150] [PATCH 1/9] import: opam: Add more patterns to opam file parser Julien Lepiller
` (5 preceding siblings ...)
2019-04-04 19:16 ` [bug#35150] [PATCH 7/9] gnu: Add ocaml-mccs Julien Lepiller
@ 2019-04-04 19:16 ` Julien Lepiller
2019-04-04 19:16 ` [bug#35150] [PATCH 9/9] gnu: opam: Unbundle dependencies Julien Lepiller
2019-04-10 15:08 ` [bug#35150] [PATCH 1/9] import: opam: Add more patterns to opam file parser Ludovic Courtès
8 siblings, 0 replies; 13+ messages in thread
From: Julien Lepiller @ 2019-04-04 19:16 UTC (permalink / raw)
To: 35150
* gnu/packages/ocaml.scm (ocaml-dose3): New variable.
* gnu/packages/patches/ocaml-dose3-Add-unix-as-dependency-to-dose3.common-in-META.in.patch:
New file.
* gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch: New file.
* gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch: New file.
* gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
---
gnu/local.mk | 4 +
gnu/packages/ocaml.scm | 52 +++++++
...ependency-to-dose3.common-in-META.in.patch | 25 ++++
.../ocaml-dose3-Fix-for-ocaml-4.06.patch | 52 +++++++
.../ocaml-dose3-Install-mli-cmx-etc.patch | 133 ++++++++++++++++++
.../ocaml-dose3-dont-make-printconf.patch | 9 ++
6 files changed, 275 insertions(+)
create mode 100644 gnu/packages/patches/ocaml-dose3-Add-unix-as-dependency-to-dose3.common-in-META.in.patch
create mode 100644 gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
create mode 100644 gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch
create mode 100644 gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index f9fd5d8fbc..858c13d8d7 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1103,6 +1103,10 @@ dist_patch_DATA = \
%D%/packages/patches/ocaml-CVE-2015-8869.patch \
%D%/packages/patches/ocaml-Add-a-.file-directive.patch \
%D%/packages/patches/ocaml-enable-ocamldoc-reproducibility.patch \
+ %D%/packages/patches/ocaml-dose3-Add-unix-as-dependency-to-dose3.common-in-META.in.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/omake-fix-non-determinism.patch \
%D%/packages/patches/ola-readdir-r.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 04d5a84d1a..0613bc29c6 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -57,6 +57,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages sdl)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tex)
@@ -391,6 +392,57 @@ underlying solvers like Cplex, Gurobi, Lpsolver, Glpk, CbC, SCIP or WBO.")
;; With static-linking exception
license:lgpl2.1+))))
+(define-public ocaml-dose3
+ (package
+ (name "ocaml-dose3")
+ (version "5.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri "https://gforge.inria.fr/frs/download.php/file/36063/dose3-5.0.1.tar.gz")
+ (sha256
+ (base32
+ "00yvyfm4j423zqndvgc1ycnmiffaa2l9ab40cyg23pf51qmzk2jm"))
+ (patches
+ (search-patches
+ "ocaml-dose3-Add-unix-as-dependency-to-dose3.common-in-META.in.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
+ `(#:configure-flags
+ (list (string-append "SHELL="
+ (assoc-ref %build-inputs "bash")
+ "/bin/sh"))
+ #:make-flags
+ (list (string-append "LIBDIR="
+ (assoc-ref %outputs "out")
+ "/lib/ocaml/site-lib"))))
+ (propagated-inputs
+ `(("ocaml-graph" ,ocaml-graph)
+ ("ocaml-cudf" ,ocaml-cudf)
+ ("ocaml-extlib" ,ocaml-extlib)
+ ("ocaml-re" ,ocaml-re)))
+ (native-inputs
+ `(("perl" ,perl)
+ ("python" ,python-2) ; for a test script
+ ("python2-pyyaml" ,python2-pyyaml) ; for a test script
+ ("ocaml-extlib" ,ocaml-extlib)
+ ("ocamlbuild" ,ocamlbuild)
+ ("ocaml-cppo" ,ocaml-cppo)))
+ (home-page "http://www.mancoosi.org/software/")
+ (synopsis "Package distribution management framework")
+ (description "Dose3 is a framework made of several OCaml libraries for
+managing distribution packages and their dependencies. Though not tied to
+any particular distribution, dose3 constitutes a pool of libraries which
+enable analyzing packages coming from various distributions. Besides basic
+functionalities for querying and setting package properties, dose3 also
+implements algorithms for solving more complex problems such as monitoring
+package evolutions, correct and complete dependency resolution and
+repository-wide uninstallability checks.")
+ ;; with static-linking exception
+ (license license:lgpl2.1+)))
+
(define-public ocaml-opam-file-format
(package
(name "ocaml-opam-file-format")
diff --git a/gnu/packages/patches/ocaml-dose3-Add-unix-as-dependency-to-dose3.common-in-META.in.patch b/gnu/packages/patches/ocaml-dose3-Add-unix-as-dependency-to-dose3.common-in-META.in.patch
new file mode 100644
index 0000000000..d2cc44c784
--- /dev/null
+++ b/gnu/packages/patches/ocaml-dose3-Add-unix-as-dependency-to-dose3.common-in-META.in.patch
@@ -0,0 +1,25 @@
+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-Fix-for-ocaml-4.06.patch b/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
new file mode 100644
index 0000000000..2c344af821
--- /dev/null
+++ b/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
@@ -0,0 +1,52 @@
+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
new file mode 100644
index 0000000000..41494e7b3c
--- /dev/null
+++ b/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch
@@ -0,0 +1,133 @@
+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-dont-make-printconf.patch b/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch
new file mode 100644
index 0000000000..84b6a3b81b
--- /dev/null
+++ b/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch
@@ -0,0 +1,9 @@
+--- 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
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#35150] [PATCH 9/9] gnu: opam: Unbundle dependencies.
2019-04-04 19:16 ` [bug#35150] [PATCH 1/9] import: opam: Add more patterns to opam file parser Julien Lepiller
` (6 preceding siblings ...)
2019-04-04 19:16 ` [bug#35150] [PATCH 8/9] gnu: Add ocaml-dose3 Julien Lepiller
@ 2019-04-04 19:16 ` Julien Lepiller
2019-04-10 15:08 ` [bug#35150] [PATCH 1/9] import: opam: Add more patterns to opam file parser Ludovic Courtès
8 siblings, 0 replies; 13+ messages in thread
From: Julien Lepiller @ 2019-04-04 19:16 UTC (permalink / raw)
To: 35150
* gnu/packages/ocaml.scm (opam)[build-system]: Use ocaml-build-system.
[source]: Use unbundled sources.
[arguments]: Update.
[inputs, native-inputs, propagated-inputs]: Add missing dependencies.
---
gnu/packages/ocaml.scm | 50 +++++++++++++++++++++++-------------------
1 file changed, 28 insertions(+), 22 deletions(-)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 0613bc29c6..58746d45df 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -475,28 +475,28 @@ the opam file fomat.")
(name "opam")
(version "2.0.3")
(source (origin
- (method url-fetch)
- ;; Use the '-full' version, which includes all the dependencies.
- (uri (string-append
- "https://github.com/ocaml/opam/releases/download/"
- version "/opam-full-" version ".tar.gz")
- ;; (string-append "https://github.com/ocaml/opam/archive/"
- ;; version ".tar.gz")
- )
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ocaml/opam")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1qphm1grxx5j8li7f9qfpih4ylrnjl08b4ym8ma4ln44l56xm285"))))
- (build-system gnu-build-system)
+ "151zvyijrapi805xm0j88ixlrhdbssfagxr2i1w25aagcd18n5y4"))))
+ (build-system ocaml-build-system)
(arguments
- '(;; Sometimes, 'make -jX' would fail right after ./configure with
- ;; "Fatal error: exception End_of_file".
- #:parallel-build? #f
+ `(#:configure-flags
+ (list (string-append "SHELL="
+ (assoc-ref %build-inputs "bash")
+ "/bin/sh"))
;; For some reason, 'ocp-build' needs $TERM to be set.
- #:make-flags `("TERM=screen"
- ,(string-append "SHELL="
- (assoc-ref %build-inputs "bash")
- "/bin/sh"))
+ #:make-flags
+ (list "TERM=screen"
+ (string-append "SHELL="
+ (assoc-ref %build-inputs "bash")
+ "/bin/sh"))
+
#:test-target "tests"
;; FIXME: There's an obscure test failure:
@@ -522,12 +522,10 @@ the opam file fomat.")
;; isolated environment when building with opam.
;; This is necessary for packages to find external
;; dependencies, such as a C compiler, make, etc...
- (("^add_mounts ro /usr")
- "add_mounts ro /gnu /run/current-system /usr"))
+ (("^add_sys_mounts /usr")
+ "add_sys_mounts /gnu /run/current-system /usr"))
(substitute* "src/client/opamInitDefaults.ml"
(("\"bwrap\"") (string-append "\"" bwrap "\"")))
- ;; Build dependencies
- (apply invoke "make" "lib-ext" make-flags)
#t)))
(add-before 'check 'pre-check
(lambda _
@@ -536,7 +534,9 @@ the opam file fomat.")
(invoke "git" "config" "--global" "user.name" "Guix")
#t)))))
(native-inputs
- `(("git" ,git) ;for the tests
+ `(("dune" ,dune)
+ ("git" ,git) ;for the tests
+ ("ocaml-cppo" ,ocaml-cppo)
("python" ,python) ;for the tests
("camlp4" ,camlp4)))
(inputs
@@ -544,6 +544,12 @@ the opam file fomat.")
("ncurses" ,ncurses)
("curl" ,curl)
("bubblewrap" ,bubblewrap)))
+ (propagated-inputs
+ `(("ocaml-cmdliner" ,ocaml-cmdliner)
+ ("ocaml-dose3" ,ocaml-dose3)
+ ("ocaml-mccs" ,ocaml-mccs)
+ ("ocaml-opam-file-format" ,ocaml-opam-file-format)
+ ("ocaml-re" ,ocaml-re)))
(home-page "http://opam.ocamlpro.com/")
(synopsis "Package manager for OCaml")
(description
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#35150] [PATCH 1/9] import: opam: Add more patterns to opam file parser.
2019-04-04 19:16 ` [bug#35150] [PATCH 1/9] import: opam: Add more patterns to opam file parser Julien Lepiller
` (7 preceding siblings ...)
2019-04-04 19:16 ` [bug#35150] [PATCH 9/9] gnu: opam: Unbundle dependencies Julien Lepiller
@ 2019-04-10 15:08 ` Ludovic Courtès
8 siblings, 0 replies; 13+ messages in thread
From: Ludovic Courtès @ 2019-04-10 15:08 UTC (permalink / raw)
To: Julien Lepiller; +Cc: 35150
Hello,
Julien Lepiller <julien@lepiller.eu> skribis:
> * guix/import/opam.scm: Add more patterns to peg parser.
It’d be nice to mention all the modified entities in the commit log.
Apart from that it LGTM.
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 13+ messages in thread