From 8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 14 Jul 2018 21:03:06 +0100 Subject: gentoo resync : 14.07.2018 --- dev-ml/ppx_deriving_yojson/Manifest | 4 ++ dev-ml/ppx_deriving_yojson/files/ocaml405.patch | 76 ++++++++++++++++++++++ dev-ml/ppx_deriving_yojson/metadata.xml | 11 ++++ .../ppx_deriving_yojson-3.0.ebuild | 44 +++++++++++++ 4 files changed, 135 insertions(+) create mode 100644 dev-ml/ppx_deriving_yojson/Manifest create mode 100644 dev-ml/ppx_deriving_yojson/files/ocaml405.patch create mode 100644 dev-ml/ppx_deriving_yojson/metadata.xml create mode 100644 dev-ml/ppx_deriving_yojson/ppx_deriving_yojson-3.0.ebuild (limited to 'dev-ml/ppx_deriving_yojson') diff --git a/dev-ml/ppx_deriving_yojson/Manifest b/dev-ml/ppx_deriving_yojson/Manifest new file mode 100644 index 000000000000..4e356a0a6c9c --- /dev/null +++ b/dev-ml/ppx_deriving_yojson/Manifest @@ -0,0 +1,4 @@ +AUX ocaml405.patch 4497 BLAKE2B f6967088e7a34ae06d50e22abf08fac3fa3899552de3a6bff642a9ffaf4cc53eb8db100a53d89d01a2d1ee01ee71e17ac30d850179378971f54cdedad00b84e9 SHA512 9bd0c7d462867b314b96d7971dc5d6b81730dee3918c5d2061c7881f7e4e172d27c9d3273c1fdfa25dce30abbc413c97eedb0e1c50cc84c82e177084220d0c8a +DIST ppx_deriving_yojson-3.0.tar.gz 18111 BLAKE2B eaf8d380b8ff606bebff4050af9fb22624b404f106518a0f68b23866e66459f74c0984970ae0bbbdb67d2f71264a832850a8e03740c8fb207bc70abe89a61219 SHA512 70c690d880ff652f9f92e95af047e87726bab48100e9325406eef7a9ed80f439df7292324de56cd17a93c6ad6bc9c1e7ce6edcd7c3b336352f0df4bfa7c7b81c +EBUILD ppx_deriving_yojson-3.0.ebuild 1012 BLAKE2B bd4af32968c4c032ec70ba76bf1814717430292adb12bd5d7185043eaadea827a94a4270855eee874fbdbbbc5d02f4746e67a6cc2f1d3506a403b84b0d9fd646 SHA512 bb1b4a997bc0e804de5d659fc26a1140c485cd1d749f0f7565cb41c92460b745842fe71c409226b24df7c82d8ab8f4f759f715442aaf447f836520a21d3bc644 +MISC metadata.xml 342 BLAKE2B 1b3bc6020fa4b6448165b9ff18d228c0dba8f7b5340abd1573ecd5d3db8296648e3a43b835fde12ff40e3603dc4138927d69055da8ca51ea4146d91fd6ae165d SHA512 ee968464fdc162f4caa4e063c43829f8ffaa89d46e49191ed6a661eeab021d5765d4bdbcd31fefbc0806ebb072aa5988a13cea45ad0d548ccdfdad5e7a500b93 diff --git a/dev-ml/ppx_deriving_yojson/files/ocaml405.patch b/dev-ml/ppx_deriving_yojson/files/ocaml405.patch new file mode 100644 index 000000000000..33440fabdd19 --- /dev/null +++ b/dev-ml/ppx_deriving_yojson/files/ocaml405.patch @@ -0,0 +1,76 @@ +Index: ppx_deriving_yojson-3.0/src/ppx_deriving_yojson.cppo.ml +=================================================================== +--- ppx_deriving_yojson-3.0.orig/src/ppx_deriving_yojson.cppo.ml ++++ ppx_deriving_yojson-3.0/src/ppx_deriving_yojson.cppo.ml +@@ -260,7 +260,7 @@ let ser_str_of_type ~options ~path ({ pt + let polymorphize_ser = Ppx_deriving.poly_arrow_of_type_decl + (fun var -> [%type: [%t var] -> Yojson.Safe.json]) type_decl + in +- let ty = Typ.poly poly_vars (polymorphize_ser [%type: [%t typ] -> Yojson.Safe.json]) in ++ let ty = Typ.poly (List.map Location.mknoloc poly_vars) (polymorphize_ser [%type: [%t typ] -> Yojson.Safe.json]) in + let default_fun = + let type_path = String.concat "." (path @ [type_decl.ptype_name.txt]) in + let e_type_path = Exp.constant (Pconst_string (type_path, None)) in +@@ -270,7 +270,7 @@ let ser_str_of_type ~options ~path ({ pt + in + let poly_fun = polymorphize default_fun in + let poly_fun = +- (Ppx_deriving.fold_left_type_decl (fun exp name -> Exp.newtype name exp) poly_fun type_decl) ++ (Ppx_deriving.fold_left_type_decl (fun exp name -> Exp.newtype (Location.mknoloc name) exp) poly_fun type_decl) + in + let mod_name = "M_"^to_yojson_name in + let typ = Type.mk ~kind:(Ptype_record [Type.field ~mut:Mutable (mknoloc "f") ty]) +@@ -337,7 +337,7 @@ let ser_str_of_type ~options ~path ({ pt + raise_errorf ~loc "%s cannot be derived for fully abstract types" deriver + in + let ty = ser_type_of_decl ~options ~path type_decl in +- let fv = Ppx_deriving.free_vars_in_core_type ty in ++ let fv = List.map Location.mknoloc (Ppx_deriving.free_vars_in_core_type ty) in + let poly_type = Typ.force_poly @@ Typ.poly fv @@ ty in + let var = pvar (Ppx_deriving.mangle_type_decl (`Suffix "to_yojson") type_decl) in + ([], +@@ -431,7 +431,7 @@ let desu_str_of_type ~options ~path ({ p + raise_errorf ~loc "%s: extensible type manifest should be a type name" deriver + | None -> + let poly_vars = List.rev +- (Ppx_deriving.fold_left_type_decl (fun acc name -> name :: acc) [] type_decl) ++ (List.map Location.mknoloc (Ppx_deriving.fold_left_type_decl (fun acc name -> name :: acc) [] type_decl)) + in + let polymorphize_desu = Ppx_deriving.poly_arrow_of_type_decl + (fun var -> [%type: Yojson.Safe.json -> [%t error_or var]]) type_decl in +@@ -441,7 +441,7 @@ let desu_str_of_type ~options ~path ({ p + let default_fun = Exp.function_ [Exp.case [%pat? _] top_error] in + let poly_fun = polymorphize default_fun in + let poly_fun = +- (Ppx_deriving.fold_left_type_decl (fun exp name -> Exp.newtype name exp) poly_fun type_decl) ++ (Ppx_deriving.fold_left_type_decl (fun exp name -> Exp.newtype (Location.mknoloc name) exp) poly_fun type_decl) + in + let mod_name = "M_"^of_yojson_name in + let typ = Type.mk ~kind:(Ptype_record [Type.field ~mut:Mutable (mknoloc "f") ty]) +@@ -514,7 +514,7 @@ let desu_str_of_type ~options ~path ({ p + raise_errorf ~loc "%s cannot be derived for fully abstract types" deriver + in + let ty = desu_type_of_decl ~options ~path type_decl in +- let fv = Ppx_deriving.free_vars_in_core_type ty in ++ let fv = List.map Location.mknoloc (Ppx_deriving.free_vars_in_core_type ty) in + let poly_type = Typ.force_poly @@ Typ.poly fv @@ ty in + let var = pvar (Ppx_deriving.mangle_type_decl (`Suffix "of_yojson") type_decl) in + ([], +@@ -579,7 +579,7 @@ let ser_sig_of_type ~options ~path type_ + (`PrefixSuffix ("M", "to_yojson")) type_decl + in + let poly_vars = List.rev +- (Ppx_deriving.fold_left_type_decl (fun acc name -> name :: acc) [] type_decl) ++ (List.map Location.mknoloc (Ppx_deriving.fold_left_type_decl (fun acc name -> name :: acc) [] type_decl)) + in + let typ = Ppx_deriving.core_type_of_type_decl type_decl in + let polymorphize_ser = Ppx_deriving.poly_arrow_of_type_decl +@@ -614,7 +614,7 @@ let desu_sig_of_type ~options ~path type + (`PrefixSuffix ("M", "of_yojson")) type_decl + in + let poly_vars = List.rev +- (Ppx_deriving.fold_left_type_decl (fun acc name -> name :: acc) [] type_decl) ++ (List.map Location.mknoloc (Ppx_deriving.fold_left_type_decl (fun acc name -> name :: acc) [] type_decl)) + in + let typ = Ppx_deriving.core_type_of_type_decl type_decl in + let polymorphize_desu = Ppx_deriving.poly_arrow_of_type_decl diff --git a/dev-ml/ppx_deriving_yojson/metadata.xml b/dev-ml/ppx_deriving_yojson/metadata.xml new file mode 100644 index 000000000000..0c78feb0828a --- /dev/null +++ b/dev-ml/ppx_deriving_yojson/metadata.xml @@ -0,0 +1,11 @@ + + + + + ml@gentoo.org + Gentoo ML Project + + + whitequark/ppx_deriving_yojson + + diff --git a/dev-ml/ppx_deriving_yojson/ppx_deriving_yojson-3.0.ebuild b/dev-ml/ppx_deriving_yojson/ppx_deriving_yojson-3.0.ebuild new file mode 100644 index 000000000000..07d29ef08c77 --- /dev/null +++ b/dev-ml/ppx_deriving_yojson/ppx_deriving_yojson-3.0.ebuild @@ -0,0 +1,44 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +inherit eutils opam + +DESCRIPTION="A Yojson codec generator for OCaml" +HOMEPAGE="https://github.com/whitequark/ppx_deriving_yojson/" +SRC_URI="https://github.com/whitequark/ppx_deriving_yojson/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64" +IUSE="+ocamlopt test" + +DEPEND=" + dev-lang/ocaml:=[ocamlopt?] + dev-ml/yojson:= + dev-ml/result:= + >=dev-ml/ppx_deriving-4:= + dev-ml/cppo:= +" +RDEPEND="${DEPEND}" +DEPEND="${DEPEND} + dev-ml/findlib + dev-ml/ocamlbuild + test? ( dev-ml/ounit dev-ml/ppx_import )" + +src_prepare() { + has_version '>=dev-lang/ocaml-4.05_rc' && epatch "${FILESDIR}/ocaml405.patch" +} + +src_compile() { + cp pkg/META.in pkg/META + ocaml pkg/build.ml \ + native=$(usex ocamlopt true false) \ + native-dynlink=$(usex ocamlopt true false) \ + || die +} + +src_test() { + ocamlbuild -j 0 -use-ocamlfind -classic-display src_test/test_ppx_yojson.byte -- || die +} -- cgit v1.2.3