summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorJason Conroy <jconroy@tscripta.net>2026-04-19 21:14:02 -0400
committerJulien Lepiller <julien@lepiller.eu>2026-04-20 19:56:53 +0200
commit0748122bd2edbfb5972a85da0bfe12ff3a889b3c (patch)
tree356c6abd3561c9aa51be0bb8f9f1eca79a98aa6c /gnu
parent396bb7e8ef628938f4b47da094367e326aa2ab12 (diff)
gnu: ocaml: Add ocaml-0install-solver.
* gnu/packages/ocaml.scm (ocaml-0install-solver): New variable. Change-Id: I52482474746ea518cd108074b0afe22f62952960 Signed-off-by: Julien Lepiller <julien@lepiller.eu>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/ocaml.scm29
1 files changed, 29 insertions, 0 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 1e5cee64b5..c1de3ac6eb 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -992,6 +992,35 @@ https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/
See https://spdx.org/licenses/ for more details.")
(license license:expat)))
+(define-public ocaml-0install-solver
+ (package
+ (name "ocaml-0install-solver")
+ (version "2.18")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/0install/0install")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1hm72k355qwgh16hngmnd77bgawf20ipnqxfncdzl10rqrc0640b"))))
+ (build-system dune-build-system)
+ (arguments
+ `(#:package "0install-solver"))
+ (native-inputs (list ocaml-ounit2))
+ (home-page "https://docs.0install.net/developers/solver/")
+ (synopsis "Package dependency solver")
+ (description
+ "This package provides a package dependency resolver based on a SAT solver.
+This was originally written for the 0install package manager, but is now
+generic and is also used as a solver backend for opam. The SAT solver is
+based on @code{MiniSat} (http://minisat.se/Papers.html) and the application to
+package management is based on OPIUM (Optimal Package Install/Uninstall
+Manager). 0install-solver uses a (novel?) strategy to find the optimal
+solution extremely quickly (even for a SAT-based solver).")
+ (license license:lgpl2.1+)))
+
(define ocaml-opam-core
(package
(name "ocaml-opam-core")