summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfredo Tupone <tupone@gentoo.org>2024-11-17 16:07:46 +0100
committerAlfredo Tupone <tupone@gentoo.org>2024-11-17 16:07:46 +0100
commit7ff37a84a99a9a50e29855a1c63245e3750adc6f (patch)
tree7c8648d9475cf4e06dce6c0921b6c700c7cdfcd4 /dev-ml/merlin
parentdev-ml/findlib: add 1.9.7 (diff)
downloadgentoo-7ff37a84a99a9a50e29855a1c63245e3750adc6f.tar.gz
gentoo-7ff37a84a99a9a50e29855a1c63245e3750adc6f.tar.bz2
gentoo-7ff37a84a99a9a50e29855a1c63245e3750adc6f.zip
dev-ml/merlin: add 4.14
Signed-off-by: Alfredo Tupone <tupone@gentoo.org>
Diffstat (limited to 'dev-ml/merlin')
-rw-r--r--dev-ml/merlin/Manifest2
-rw-r--r--dev-ml/merlin/merlin-4.14.ebuild118
2 files changed, 120 insertions, 0 deletions
diff --git a/dev-ml/merlin/Manifest b/dev-ml/merlin/Manifest
index 53f177d649a7..95446cef9e54 100644
--- a/dev-ml/merlin/Manifest
+++ b/dev-ml/merlin/Manifest
@@ -1 +1,3 @@
DIST merlin-4.13-414.tbz 1993752 BLAKE2B 8b5704252f771ddac843340bf2aa24f62a2b490f6bb03c46a1daa2560fae72226b92fb5a9720b18c82f476571e7e6ffc7c30e695c8a0e1a3de6bd65ee58461e1 SHA512 cf7e292a515122756bd614eedbf11cc09108e6afab77cd5805428207b3ca5a98494ee43ad59fcfb667b48fe0874f0a8359882b3c14ee270769f99c41e176d455
+DIST merlin-4.14-414.tar.gz 2463721 BLAKE2B 07d3fae8a4115b39bf035b8550d65447fee0758adb802ce1efa6e2a9ca2a64d433154e48c6d54af125e11ce8d65b7d4e30f1bf2f4414ac3e37cf05bd9b0ded03 SHA512 aad9a9937c53ede4bc45912ef03b9eb655f5a8a25c9893588baab6aec06a0ed7b4827a5228fe8f4495f7b66067b87adf917e6c868c9ff6a88d34982e7db84240
+DIST merlin-4.14-502.tar.gz 3872595 BLAKE2B 81c85101a696e85dd66f5ebc155c578715d30a8abf49e222c50ae09bfa2cc7086cfbcd1a89e611edd2382a844063bfd8ffd7c07c381b94e56db5576a6029fbea SHA512 92120a6b2d7d833519afee223b59980516828ff25d3df24edf64af3ba2f2f38395bb61440d9171d746b287f2de538643e38f8ada5f21ff1a0a56b365a39f814d
diff --git a/dev-ml/merlin/merlin-4.14.ebuild b/dev-ml/merlin/merlin-4.14.ebuild
new file mode 100644
index 000000000000..1e27f6798620
--- /dev/null
+++ b/dev-ml/merlin/merlin-4.14.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# TODO: vim-plugin, although it's not clear how to make it work here
+inherit elisp-common dune edo
+
+DESCRIPTION="Context sensitive completion for OCaml in Vim and Emacs"
+HOMEPAGE="https://github.com/ocaml/merlin/"
+SRC_URI="
+ https://github.com/ocaml/merlin/archive/refs/tags/v${PV}-414.tar.gz
+ -> ${P}-414.tar.gz
+ https://github.com/ocaml/merlin/archive/refs/tags/${PV}-502_preview2.tar.gz
+ -> ${P}-502.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="~amd64"
+IUSE="emacs +ocamlopt test"
+
+# Tests fail unexpectedly on Tinderbox. See https://bugs.gentoo.org/933857
+# RESTRICT="!test? ( test )"
+RESTRICT="test"
+
+RDEPEND="
+ <dev-lang/ocaml-5
+ >=dev-lang/ocaml-4.14.1
+ >=dev-ml/dune-2.9:=
+ >=dev-ml/yojson-2.0.0:=
+ dev-lang/ocaml:=[ocamlopt?]
+ dev-ml/csexp:=
+ dev-ml/menhir:=
+ emacs? (
+ >=app-editors/emacs-23.1:*
+ app-emacs/auto-complete
+ app-emacs/company-mode
+ )
+"
+DEPEND="
+ ${RDEPEND}
+"
+# NOTICE: Block dev-ml/seq (which is a back-port of code to ocaml <4.07)
+# because it breaks merlin builds.
+# https://github.com/ocaml/merlin/issues/1500
+BDEPEND="
+ !!<dev-ml/seq-0.3
+ dev-ml/findlib
+ test? (
+ app-misc/jq
+ )
+"
+
+SITEFILE="50${PN}-gentoo.el"
+
+src_unpack() {
+ default
+
+ if has_version "=dev-lang/ocaml-4.14*" ; then
+ edo mv "${P}-414" "${S}"
+ elif has_version "=dev-lang/ocaml-5.2*" ; then
+ edo mv "${P}-502_preview2" "${S}"
+ else
+ die "Currently installed version of OCaml is not yet supported"
+ fi
+}
+
+src_prepare() {
+ default
+
+ # Handle ELisp installation via the Emacs Eclass.
+ rm emacs/dune || die
+
+ # This test runs only inside a git repo,
+ # it is not included in merlin release for ocaml 4.12.
+ if [[ -f tests/test-dirs/occurrences/issue1404.t ]] ; then
+ rm tests/test-dirs/occurrences/issue1404.t || die
+ fi
+ rm -r tests/test-dirs/locate/context-detection/cd-mod_constr.t || die
+
+ # Remove seq references from dune build files.
+ sed -i 's|seq||g' src/frontend/ocamlmerlin/dune || die
+
+ # Remove Menhir requirement.
+ # > MenhirLib.StaticVersion.require_20201216
+ sed -i src/ocaml/preprocess/parser_raw.ml \
+ -e "s|MenhirLib.StaticVersion.require_.*|()|g" \
+ || die
+}
+
+src_compile() {
+ dune_src_compile
+
+ if use emacs ; then
+ # iedit isn't packaged yet
+ rm emacs/merlin-iedit.el || die
+
+ BYTECOMPFLAGS="-L emacs" elisp-compile emacs/*.el
+ fi
+}
+
+src_install() {
+ dune_src_install
+
+ if use emacs ; then
+ elisp-install ${PN} emacs/*.el{,c}
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}