commit:     52d438422968d43ce090534d9e80b89e4f905754
Author:     Hank Leininger <hlein <AT> korelogic <DOT> com>
AuthorDate: Tue Jun  1 16:29:43 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jun  6 23:55:18 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=52d43842

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 <AT> 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 <AT> gentoo.org>

 .../files/debian-Port-to-Dose3-6.0.1.patch         | 142 +++++++++++++++++++++
 .../opam-installer/opam-installer-2.0.8-r3.ebuild  |  45 +++++++
 2 files changed, 187 insertions(+)

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 00000000000..a8af27416df
--- /dev/null
+++ b/dev-ml/opam-installer/files/debian-Port-to-Dose3-6.0.1.patch
@@ -0,0 +1,142 @@
+From: Mehdi Dogguy <me...@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 00000000000..7bd84a692fe
--- /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
+}

Reply via email to