summaryrefslogtreecommitdiff
path: root/dev-ml/ppx_deriving_yojson
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /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/Manifest5
-rw-r--r--dev-ml/ppx_deriving_yojson/files/ocaml405.patch76
-rw-r--r--dev-ml/ppx_deriving_yojson/metadata.xml11
-rw-r--r--dev-ml/ppx_deriving_yojson/ppx_deriving_yojson-3.0.ebuild44
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
+}