commit:     3f8e6b6c84731d3f44e41a3ff616e205c28ed673
Author:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
AuthorDate: Sun Jun  9 15:19:59 2024 +0000
Commit:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
CommitDate: Sun Jun  9 15:20:35 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3f8e6b6c

dev-lang/ocaml: add 5.2.0

Signed-off-by: Alfredo Tupone <tupone <AT> gentoo.org>

 dev-lang/ocaml/Manifest           |   1 +
 dev-lang/ocaml/ocaml-5.2.0.ebuild | 107 ++++++++++++++++++++++++++++++++++++++
 profiles/package.mask             |   7 +++
 3 files changed, 115 insertions(+)

diff --git a/dev-lang/ocaml/Manifest b/dev-lang/ocaml/Manifest
index 40c13afbea57..b6476e6f2b79 100644
--- a/dev-lang/ocaml/Manifest
+++ b/dev-lang/ocaml/Manifest
@@ -7,3 +7,4 @@ DIST ocaml-4.12.1.tar.gz 5181696 BLAKE2B 
9d21438e09b1a9680eabb65f5c78d9fe8445959
 DIST ocaml-4.13.1.tar.gz 5323203 BLAKE2B 
f1dcb1601ebfa2a37351e3a466a7ca601518c2da403b01aeb182738a54d5887523ab554d747d6591cb09b07b417865e20907f7877117b2d2d069ef6c9edc0fae
 SHA512 
da3434177438c852da53c0fda7bc2519adcda6384d97d45e44137ed0fd384ffb3da61958a7b51296edb3f88f5a5310ca71b6862f6d756aaa4012d1f54e5955f6
 DIST ocaml-4.14.1.tar.gz 5498436 BLAKE2B 
6113283ab0f7ac39ade1f35a02c203a6956f8f4efa4f174daf53483c1d874613195c2705ca02760f0ff4abd9b37c91f8dec59c010ac8ae8731790cdd6f429673
 SHA512 
6340e145c7d11a1ee9fa1699fc6a8a6785f14ff9c05dca708cf278194642ec9b7c562d744d8b38e5dab74b88fa3a5760035e214f5f8fab8b233a344b035db8fb
 DIST ocaml-4.14.2.tar.gz 5505119 BLAKE2B 
518c2a69ee32e1c141b574a9800a64efc445381eb2808985b5dbb9d5ec54228aa25042a1c410307c3556488ba12a751980396b0d9a01e60a1ea84ac5b52e6dd6
 SHA512 
61bfa7961aae02458210f10865a5703f7a50a9be2452379e820cf2dfac2c6037da553c31835145e50a776880bdeb2ec78cd7a3147d65f418e7b3e593534e8a04
+DIST ocaml-5.2.0.tar.gz 6047633 BLAKE2B 
5d0a7d48d9ed9fcd2974237a93e30ffee20fc444b5ede296bd35cb3285909f8cf5a489ac1cdc75778ca6d45f8ff40a92939bfcfc42e218aeda0170b1ac0bfd49
 SHA512 
78115690186c13c1f2480e4812a9fe34cce2c28bf8a89d5c9810bca0391f930cecd9cee2b53daca8a32da1815628b33be68f3948f1ad03fa50b72b14e3ea84f2

diff --git a/dev-lang/ocaml/ocaml-5.2.0.ebuild 
b/dev-lang/ocaml/ocaml-5.2.0.ebuild
new file mode 100644
index 000000000000..dc8655e47ad7
--- /dev/null
+++ b/dev-lang/ocaml/ocaml-5.2.0.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic
+
+DESCRIPTION="Programming language supporting functional, imperative & 
object-oriented styles"
+HOMEPAGE="https://ocaml.org/";
+SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="QPL-1.0 LGPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv 
~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="emacs flambda latex +ocamlopt test xemacs"
+
+RDEPEND="sys-libs/binutils-libs:="
+BDEPEND="${RDEPEND}
+       virtual/pkgconfig"
+PDEPEND="emacs? ( app-emacs/ocaml-mode )
+       xemacs? ( app-xemacs/ocaml )"
+
+QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs'
+
+RESTRICT="!test? ( test )"
+
+src_prepare() {
+       default
+
+       cp "${FILESDIR}"/ocaml.conf "${T}" || die
+
+       # OCaml generates textrels on 32-bit arches
+       # We can't do anything about it, but disabling it means that tests
+       # for OCaml-based packages won't fail on unexpected output
+       # bug #773226
+       if use arm || use ppc || use x86 ; then
+               append-ldflags "-Wl,-z,notext"
+       fi
+
+       # Upstream build ignores LDFLAGS in several places.
+       sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
+               -e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
+               -e 's/\(^OC_LDFLAGS=.*\)/\1 $(LDFLAGS)/' \
+               Makefile.config.in || die "LDFLAGS fix failed"
+}
+
+src_configure() {
+       filter-lto #bug 870349
+       local opt=(
+               --bindir="${EPREFIX}/usr/bin"
+               --libdir="${EPREFIX}/usr/$(get_libdir)/ocaml"
+               --mandir="${EPREFIX}/usr/share/man"
+               --prefix="${EPREFIX}/usr"
+               $(use_enable test ocamltest) \
+               $(use_enable flambda)
+       )
+
+       econf "${opt[@]}"
+}
+
+src_compile() {
+       env -u P emake world
+
+       if use ocamlopt ; then
+               env -u P emake opt
+               env -u P emake opt.opt
+       fi
+}
+
+src_test() {
+       emake -j
+
+       # OCaml tests only work when run sequentially
+       if use ocamlopt ; then
+               emake -j1 ocamltest.opt
+       else
+               emake -j1 ocamltest
+               #ewarn "${PN} was built without 'ocamlopt' USE flag; skipping 
tests."
+       fi
+
+       emake -j1 tests
+}
+
+src_install() {
+       # OCaml generates textrels on 32-bit arches
+       if use arm || use ppc || use x86 ; then
+               export QA_TEXTRELS='.*'
+       fi
+       default
+
+       dodir /usr/include
+       # Create symlink for header files
+       dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
+       dodoc Changes README.adoc
+
+       # Create envd entry for latex input files
+       if use latex ; then
+               echo 
"TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > 
"${T}"/99ocamldoc || die
+               doenvd "${T}"/99ocamldoc
+       fi
+
+       sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die
+
+       # Install ocaml-rebuild portage set
+       insinto /usr/share/portage/config/sets
+       doins "${T}"/ocaml.conf
+}

diff --git a/profiles/package.mask b/profiles/package.mask
index ca9afb7de22d..e241e2ebd166 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -33,6 +33,13 @@
 
 #--- END OF EXAMPLES ---
 
+# Alfredo Tupone <[email protected]> (2024-06-09)
+# Not ready for testing
+dev-ml/sexplib0:0/0.17
+dev-ml/ocaml_intrinsics:0/0.17
+dev-ml/ocaml_intrinsics_kernel:0/0.17
+>=dev-lang/ocaml-5
+
 # Arthur Zamarin <[email protected]> (2024-06-08)
 # EAPI=6, waiting for a version bump, not maintained for many years.
 # Removal on 2024-07-08.  Bug #933850.

Reply via email to