summaryrefslogtreecommitdiff
path: root/dev-ml/cairo-ocaml
diff options
context:
space:
mode:
Diffstat (limited to 'dev-ml/cairo-ocaml')
-rw-r--r--dev-ml/cairo-ocaml/Manifest2
-rw-r--r--dev-ml/cairo-ocaml/cairo-ocaml-1.2.0-r1.ebuild85
-rw-r--r--dev-ml/cairo-ocaml/files/ocaml406.patch20
3 files changed, 107 insertions, 0 deletions
diff --git a/dev-ml/cairo-ocaml/Manifest b/dev-ml/cairo-ocaml/Manifest
index fa4b0ecd1443..252bd9f18b36 100644
--- a/dev-ml/cairo-ocaml/Manifest
+++ b/dev-ml/cairo-ocaml/Manifest
@@ -2,6 +2,8 @@ AUX 0001-Add-missing-libraries-used-by-the-stubs-to-CAIRO_LIB.patch 769 BLAKE2B
AUX 0002-Fix-Makefile-to-avoid-recompiling-files-in-usr.patch 742 BLAKE2B a388b82271137f9d578cde618d63f52ddf93c5901ef892db143ce21469bfd9fcc0c45f4208aca10f6fe4556bec75fc18e4ccbe2782f2d4ba2d9a70f27a814c8c SHA512 8305da294c9e69ac56a9250afc3d70afe70ba9229ecde320767019df51b84fc9c09a753f10f0b189ab537b6e8fc5ef8c17d6179bca51fba3138122ccbae223a3
AUX 0003-Fix-FTBFS-on-bytecode-architectures.patch 1135 BLAKE2B 90847d27617c1c63e77f294cbcec28c42a923aad1fd24a58f9a46739b23ce49038449e9f4618e608cb7bed721b0d9d3c67e3606c2d545a5a34380bb0b9ae2a4b SHA512 e4550c4c9315ce3c2a16361541ad2b3acccaa6d36d922c5361d1c26e1af22491e46713fe58291b6345d832fdf78466a1937c2327acfeaeb070508fddedfdb206
AUX 0004-no-automagic.patch 1041 BLAKE2B 8cc95aabf25e768cbb03ea608b74a45aa36f7e86f72da7875bb19973512165a1e6ece9f80093ec887e49ffdbd86df23ae585317d2f65b791c186335b86fc2b50 SHA512 53bfa4cbc40b3725fa40454fb6e8521f21aaf61135dd6da1ec9fd3f1df256ceec1901022aa70dabd568c0291e37008b7c122d1d654856a13fe632f3bf2c271b8
+AUX ocaml406.patch 830 BLAKE2B 662bc72ae0f51e6b6b11a475930847fb18a34c1a812c758b0d00fe156a0b1872dd0eb3d590a3be744ef7c4231aa637571631f0d3d61e9401a1b2164a8434e6ac SHA512 d2fc42aaaac76311cc78ee5c53df6e4c029534f424430465f18acb57988169ea240af2c1d08d84fefd5c8e64e5342e8e721e72eab2e1cf240507fcf0324aff72
DIST cairo-ocaml-1.2.0.tar.bz2 44483 BLAKE2B 49a8c811100e3167a8c32ca87a0a6c256862d276c3703082b944aa55f8def7b56d478c0ed44b9d7f5de9194603b688daa5e42949db00417b71daa7376e17410b SHA512 5cac319cf27b94d31e955885ae89b40342c2ae4ffd1aca7c52366f7c3679185f74e513e0c73bd01260f89da29d43bb420dadd059fa1cf5509997db8f935704b4
+EBUILD cairo-ocaml-1.2.0-r1.ebuild 1952 BLAKE2B bfcd8312395d9f90f096d9caae515a772bcc9919ae0b8445ec4200d6dd3fe61cf435a5d28170f5f72135d0b6c2dad8bf66203f0a50c68425e733e5a0b3c8d8a3 SHA512 b0d0c3a46db06aee8b1ddfe94643fa22888bee2a1a5c85cef24c4536c81880d38f82fdcd7194ca482e9f4aafe9f2a351573f976264b08a46de75c3e84b2dae82
EBUILD cairo-ocaml-1.2.0.ebuild 1896 BLAKE2B 50549894df7f733d386d7611fa9adde2325e20acb0731adc5b1eb760c385f6292acb0ffefabcd2a0bece62c7de481997fb1dd937f68fdc216d90b92319f5dfe3 SHA512 b1ce1ed398e94271e9a608b1abd3d3be2543065111c1d6826e19db71022f3b898de1c97d524884a460de9ba841b4c7074f68561d353c5142cb2bb7b83d569707
MISC metadata.xml 572 BLAKE2B 55d9ae52f939a260daa0e05c073fb0e574a44383414e04274d58ded73bc68ae6713039ed1f51998a307c166313d93755066a9d06f7fea3525a154de856854ad0 SHA512 7ca7f4c88e7343d1ac5acbacef33cde7a437c5e70df3bede08ee893c7bea317b444585f4d4e9e010509b2ebae9586bbe5d94a5229f656b6ce996cabb895a60d2
diff --git a/dev-ml/cairo-ocaml/cairo-ocaml-1.2.0-r1.ebuild b/dev-ml/cairo-ocaml/cairo-ocaml-1.2.0-r1.ebuild
new file mode 100644
index 000000000000..1a9969c60bee
--- /dev/null
+++ b/dev-ml/cairo-ocaml/cairo-ocaml-1.2.0-r1.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit findlib autotools
+
+DESCRIPTION="Ocaml bindings for the cairo vector graphics library"
+HOMEPAGE="https://www.cairographics.org/cairo-ocaml/"
+SRC_URI="https://cgit.freedesktop.org/cairo-ocaml/snapshot/${P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples gtk pango"
+
+RDEPEND="dev-lang/ocaml:=
+ x11-libs/cairo
+ gtk? ( dev-ml/lablgtk:2= )
+ pango? ( x11-libs/pango )"
+DEPEND="${RDEPEND}"
+
+# 3 patches from debian and one for automagic on libsvg-cairo
+PATCHES=(
+ "${FILESDIR}"/0001-Add-missing-libraries-used-by-the-stubs-to-CAIRO_LIB.patch \
+ "${FILESDIR}"/0002-Fix-Makefile-to-avoid-recompiling-files-in-usr.patch \
+ "${FILESDIR}"/0003-Fix-FTBFS-on-bytecode-architectures.patch \
+ "${FILESDIR}"/0004-no-automagic.patch
+)
+
+src_prepare() {
+ default
+ has_version '>=dev-lang/ocaml-4.06.0' && eapply "${FILESDIR}"/ocaml406.patch
+ AT_M4DIR=support eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_with gtk) \
+ $(use_with pango pango-cairo) \
+ --without-svg-cairo
+}
+
+src_compile() {
+ emake -j1
+ use doc && emake doc
+}
+
+src_install() {
+ findlib_src_install
+ dodoc README ChangeLog
+ if use examples; then
+ docinto examples
+ dodoc test/*.ml
+ fi
+ # ocamlfind support
+ cat <<-EOF > META
+ name = "${PN}"
+ description = "${DESCRIPTION}"
+ requires = "bigarray"
+ version = "${PV}"
+ archive(byte) = "cairo.cma"
+ archive(native) = "cairo.cmxa"
+ EOF
+ if use gtk; then
+ cat <<-EOF >> META
+ package "lablgtk2" (
+ requires = "cairo lablgtk2"
+ archive(byte) = "cairo_lablgtk.cma"
+ archive(native) = "cairo_lablgtk.cmxa"
+ )
+ EOF
+ fi
+ if use pango; then
+ cat <<-EOF >> META
+ package "pango" (
+ requires = "cairo"
+ archive(byte) = "pango_cairo.cma"
+ archive(native) = "pango_cairo.cmxa"
+ )
+ EOF
+ fi
+ insinto /usr/$(get_libdir)/ocaml/cairo
+ doins META
+}
diff --git a/dev-ml/cairo-ocaml/files/ocaml406.patch b/dev-ml/cairo-ocaml/files/ocaml406.patch
new file mode 100644
index 000000000000..2ef9931463b0
--- /dev/null
+++ b/dev-ml/cairo-ocaml/files/ocaml406.patch
@@ -0,0 +1,20 @@
+Index: cairo-ocaml-1.2.0/src/cairo_png.ml
+===================================================================
+--- cairo-ocaml-1.2.0.orig/src/cairo_png.ml
++++ cairo-ocaml-1.2.0/src/cairo_png.ml
+@@ -7,13 +7,13 @@
+ (**************************************************************************)
+
+ external image_surface_create_from_stream_unsafe :
+- (string -> int -> unit) -> Cairo.image_surface = "ml_cairo_image_surface_create_from_png_stream_unsafe"
++ (bytes -> int -> unit) -> Cairo.image_surface = "ml_cairo_image_surface_create_from_png_stream_unsafe"
+
+ let image_surface_create_from_channel ic =
+ image_surface_create_from_stream_unsafe
+ (fun s n ->
+ for i = 0 to n - 1 do
+- String.unsafe_set s i (input_char ic)
++ Bytes.unsafe_set s i (input_char ic)
+ done)
+
+ let image_surface_create_from_file fname =