diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-ml/ppx_deriving_yojson |
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-ml/ppx_deriving_yojson')
-rw-r--r-- | dev-ml/ppx_deriving_yojson/Manifest | 5 | ||||
-rw-r--r-- | dev-ml/ppx_deriving_yojson/files/ocaml405.patch | 76 | ||||
-rw-r--r-- | dev-ml/ppx_deriving_yojson/metadata.xml | 11 | ||||
-rw-r--r-- | dev-ml/ppx_deriving_yojson/ppx_deriving_yojson-3.0.ebuild | 44 |
4 files changed, 136 insertions, 0 deletions
diff --git a/dev-ml/ppx_deriving_yojson/Manifest b/dev-ml/ppx_deriving_yojson/Manifest new file mode 100644 index 000000000000..a77cdf8ecbc3 --- /dev/null +++ b/dev-ml/ppx_deriving_yojson/Manifest @@ -0,0 +1,5 @@ +AUX ocaml405.patch 4497 SHA256 2eb94c57e9ac6dc80fffd6975e6863c10f22fafdf02565f3e2df76f79b413013 SHA512 9bd0c7d462867b314b96d7971dc5d6b81730dee3918c5d2061c7881f7e4e172d27c9d3273c1fdfa25dce30abbc413c97eedb0e1c50cc84c82e177084220d0c8a WHIRLPOOL 59272c9f99be3c5c9fe874231c4cb31d102252f47043b61361f7845ae80f47d654e731d331cc64cfee294c467807bc8f56ee4c3b575bbe25a70b79540707bc3a +DIST ppx_deriving_yojson-3.0.tar.gz 18111 SHA256 28264562fa87fe0ae3484fa434126c02a7770f0324fa6a64ba8132ab10ae5143 SHA512 70c690d880ff652f9f92e95af047e87726bab48100e9325406eef7a9ed80f439df7292324de56cd17a93c6ad6bc9c1e7ce6edcd7c3b336352f0df4bfa7c7b81c WHIRLPOOL 7fac84e8faa78a9c362453098a2e73d1902ec9272f45ee32c9710bea527faeae55274ecfa257ad1eadbe4aa24d623e33b5ca73c122548efc0fe951061b1dc268 +EBUILD ppx_deriving_yojson-3.0.ebuild 1012 SHA256 d0aa69753fdd9ba839662710d3fb11465be52d94e60727ddc40dceb03c4aa2f0 SHA512 bb1b4a997bc0e804de5d659fc26a1140c485cd1d749f0f7565cb41c92460b745842fe71c409226b24df7c82d8ab8f4f759f715442aaf447f836520a21d3bc644 WHIRLPOOL 03b20e44882e3c54f31f0c50e685049fe4cdedab6469acc42c0c8872d21cf9a371eae0313486af46af3a1bbf24bb000786113989ea2a99027dc3d89ef3a8b5d9 +MISC ChangeLog 490 SHA256 185acf017d8a448c1b20de9c340f4fd1bd3af8220c432246fec9a019080795a4 SHA512 e1217e4f23258090f4fda3a9555e3c1de588777a367b1f9c05710a5f016f57a8bfe78301dc334335f70f487f187847b7fcaf7a8a710409aaad4eb3e7f2553eef WHIRLPOOL 67ef2c19e71182e237d04f70432059f16587030ce2b37287670522501f0b9ed370f85e17bc4249c9e64ec7f9c09f0d2ce0589dd859e0c3002527fe3286dcf66c +MISC metadata.xml 342 SHA256 3a1dff43c67f20971ab59405e64b7b2d039f3db94d4c4441a2941bdaad9d8310 SHA512 ee968464fdc162f4caa4e063c43829f8ffaa89d46e49191ed6a661eeab021d5765d4bdbcd31fefbc0806ebb072aa5988a13cea45ad0d548ccdfdad5e7a500b93 WHIRLPOOL 6cf55a15335f430a27a6b2cd0ce01e35c99d6463a05e24643602d96412ac0979c2dd57d686a907e0a88c02de0cfb3e0f3281593ebb6db98c83c9b290fb4b532a 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 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>ml@gentoo.org</email> + <name>Gentoo ML Project</name> + </maintainer> + <upstream> + <remote-id type="github">whitequark/ppx_deriving_yojson</remote-id> + </upstream> +</pkgmetadata> 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 +} |