diff options
author | Hank Leininger <hlein@korelogic.com> | 2021-06-01 10:29:43 -0600 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2021-06-06 23:55:18 +0000 |
commit | 52d438422968d43ce090534d9e80b89e4f905754 (patch) | |
tree | e28167441fa4e4a41bd1f155f968b488b50f60ef | |
parent | dev-ml/opam-state: patch for dose3-6.x compat (diff) | |
download | gentoo-52d438422968d43ce090534d9e80b89e4f905754.tar.gz gentoo-52d438422968d43ce090534d9e80b89e4f905754.tar.bz2 gentoo-52d438422968d43ce090534d9e80b89e4f905754.zip |
dev-ml/opam-installer: patch for dose3-6.x compat
Lifted from Debian, see https://bugs.debian.org/982733
Signed-off-by: Hank Leininger <hlein@korelogic.com>
Closes: https://bugs.gentoo.org/788265
Package-Manager: Portage-3.0.19, Repoman-3.0.3
Closes: https://github.com/gentoo/gentoo/pull/20686
Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r-- | dev-ml/opam-installer/files/debian-Port-to-Dose3-6.0.1.patch | 142 | ||||
-rw-r--r-- | dev-ml/opam-installer/opam-installer-2.0.8-r3.ebuild | 45 |
2 files changed, 187 insertions, 0 deletions
diff --git a/dev-ml/opam-installer/files/debian-Port-to-Dose3-6.0.1.patch b/dev-ml/opam-installer/files/debian-Port-to-Dose3-6.0.1.patch new file mode 100644 index 000000000000..a8af27416df1 --- /dev/null +++ b/dev-ml/opam-installer/files/debian-Port-to-Dose3-6.0.1.patch @@ -0,0 +1,142 @@ +From: Mehdi Dogguy <mehdi@debian.org> +Date: Sun, 28 Feb 2021 19:27:24 +0100 +Subject: Port to Dose3 6.0.1 + +--- + src/client/opamAdminCheck.ml | 2 ++ + src/client/opamAdminRepoUpgrade.ml | 2 ++ + src/solver/opamBuiltinMccs.ml.real | 2 +- + src/solver/opamCudf.ml | 5 ++++- + src/solver/opamCudf.mli | 4 ++-- + src/solver/opamCudfSolver.ml | 4 ++-- + src/solver/opamSolver.ml | 4 +++- + 7 files changed, 16 insertions(+), 7 deletions(-) + +diff --git a/src/client/opamAdminCheck.ml b/src/client/opamAdminCheck.ml +index 05543a2..f23bfc4 100644 +--- a/src/client/opamAdminCheck.ml ++++ b/src/client/opamAdminCheck.ml +@@ -8,6 +8,8 @@ + (* *) + (**************************************************************************) + ++module Algo = Dose_algo ++ + open OpamTypes + open OpamPackage.Set.Op + +diff --git a/src/client/opamAdminRepoUpgrade.ml b/src/client/opamAdminRepoUpgrade.ml +index 0be53b2..635e792 100644 +--- a/src/client/opamAdminRepoUpgrade.ml ++++ b/src/client/opamAdminRepoUpgrade.ml +@@ -8,6 +8,8 @@ + (* *) + (**************************************************************************) + ++module Algo = Dose_algo ++ + open OpamTypes + open OpamProcess.Job.Op + open OpamStd.Option.Op +diff --git a/src/solver/opamBuiltinMccs.ml.real b/src/solver/opamBuiltinMccs.ml.real +index ab39ab3..2b41982 100644 +--- a/src/solver/opamBuiltinMccs.ml.real ++++ b/src/solver/opamBuiltinMccs.ml.real +@@ -35,7 +35,7 @@ let call solver_backend ext ~criteria ?timeout cudf = + ~verbose:OpamCoreConfig.(!r.debug_level >= 2) + ?timeout criteria cudf + with +- | None -> raise Common.CudfSolver.Unsat ++ | None -> raise Dose_common.CudfSolver.Unsat + | Some (preamble, univ) -> Some preamble, univ + | exception Mccs.Timeout -> raise Timeout + +diff --git a/src/solver/opamCudf.ml b/src/solver/opamCudf.ml +index e07ff54..ad7293c 100644 +--- a/src/solver/opamCudf.ml ++++ b/src/solver/opamCudf.ml +@@ -9,6 +9,9 @@ + (* *) + (**************************************************************************) + ++module Common = Dose_common ++module Algo = Dose_algo ++ + open OpamTypes + open OpamTypesBase + +@@ -634,7 +637,7 @@ let call_external_solver ~version_map univ req = + let r = + Algo.Depsolver.check_request_using + ~call_solver:(OpamSolverConfig.call_solver ~criteria) +- ~criteria ~explain:true cudf_request ++ ~explain:true cudf_request + in + log "Solver call done in %.3f" (chrono ()); + r +diff --git a/src/solver/opamCudf.mli b/src/solver/opamCudf.mli +index cb8158d..c928ccf 100644 +--- a/src/solver/opamCudf.mli ++++ b/src/solver/opamCudf.mli +@@ -24,7 +24,7 @@ module Map: OpamStd.MAP with type key = Cudf.package + module Graph: sig + (** Graph of cudf packages *) + +- include module type of Algo.Defaultgraphs.PackageGraph.G ++ include module type of Dose_algo.Defaultgraphs.PackageGraph.G + + (** Build a graph from a CUDF universe. Warning: dependency edges are towards + the dependency, which is the reverse of what happens in the action +@@ -180,7 +180,7 @@ val string_of_vpkgs: Cudf_types.vpkg list -> string + + val make_conflicts: + version_map:int package_map -> Cudf.universe -> +- Algo.Diagnostic.diagnosis -> ('a, conflict) result ++ Dose_algo.Diagnostic.diagnosis -> ('a, conflict) result + val cycle_conflict: + version_map:int package_map -> Cudf.universe -> + string list list -> ('a, conflict) result +diff --git a/src/solver/opamCudfSolver.ml b/src/solver/opamCudfSolver.ml +index 03486f1..2651373 100644 +--- a/src/solver/opamCudfSolver.ml ++++ b/src/solver/opamCudfSolver.ml +@@ -57,7 +57,7 @@ let call_external_solver command ~criteria ?timeout (_, universe,_ as cudf) = + in + OpamFilename.remove solver_in; + if not (OpamFilename.exists solver_out) then +- raise (Common.CudfSolver.Error "no output") ++ raise (Dose_common.CudfSolver.Error "no output") + else if + (let ic = OpamFilename.open_in solver_out in + try +@@ -65,7 +65,7 @@ let call_external_solver command ~criteria ?timeout (_, universe,_ as cudf) = + i = "FAIL" + with End_of_file -> close_in ic; false) + then +- raise Common.CudfSolver.Unsat ++ raise Dose_common.CudfSolver.Unsat + else + let r = + Cudf_parser.load_solution_from_file +diff --git a/src/solver/opamSolver.ml b/src/solver/opamSolver.ml +index 3748e75..bbf995f 100644 +--- a/src/solver/opamSolver.ml ++++ b/src/solver/opamSolver.ml +@@ -9,6 +9,8 @@ + (* *) + (**************************************************************************) + ++module Algo = Dose_algo ++ + open OpamTypes + open OpamTypesBase + open OpamPackage.Set.Op +@@ -84,7 +86,7 @@ let cudf_versions_map universe packages = + pmap OpamPackage.Map.empty + + let name_to_cudf name = +- Common.CudfAdd.encode (OpamPackage.Name.to_string name) ++ Dose_common.CudfAdd.encode (OpamPackage.Name.to_string name) + + let constraint_to_cudf version_map name (op,v) = + let nv = OpamPackage.create name v in diff --git a/dev-ml/opam-installer/opam-installer-2.0.8-r3.ebuild b/dev-ml/opam-installer/opam-installer-2.0.8-r3.ebuild new file mode 100644 index 000000000000..7bd84a692fe7 --- /dev/null +++ b/dev-ml/opam-installer/opam-installer-2.0.8-r3.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# We are opam +OPAM_INSTALLER_DEP=" " +OPAM_SKIP_VALIDATION=yes +inherit opam + +DESCRIPTION="Core installer for opam packages" +HOMEPAGE="https://opam.ocaml.org/ https://github.com/ocaml/opam" +SRC_URI="https://github.com/ocaml/opam/releases/download/${PV}/opam-full-${PV}.tar.gz" +S="${WORKDIR}/opam-full-${PV/_/-}" +OPAM_INSTALLER="${S}/opam-installer" + +LICENSE="LGPL-2.1" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86" + +# Cherry-picked from https://deb.debian.org/debian/pool/main/o/opam/opam_2.0.8-1.debian.tar.xz +PATCHES=( "${FILESDIR}/debian-Port-to-Dose3-6.0.1.patch" ) + +RDEPEND=" + >=dev-lang/ocaml-4.02.3 + dev-ml/cmdliner:= + ~dev-ml/opam-format-${PV} +" +DEPEND="${RDEPEND} + dev-ml/findlib" + +src_configure() { + econf \ + --prefix="${EPREFIX}/usr" \ + --with-mccs \ + --docdir="${EPREFIX}/usr/share/doc/${PF}" \ + --mandir="${EPREFIX}/usr/share/man" +} + +src_compile() { + sed -e 's/DUNE = .*$/DUNE = /' -i Makefile.config + #passing -jX to the dune build leads to errors + #see: https://github.com/ocaml/opam/issues/3585 + emake DUNE_PROMOTE_ARG="" -j1 +} |