summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-ml/dune/Manifest1
-rw-r--r--dev-ml/dune/dune-3.17.2.ebuild70
2 files changed, 71 insertions, 0 deletions
diff --git a/dev-ml/dune/Manifest b/dev-ml/dune/Manifest
index 3523be39ec8e..e38afc6ec486 100644
--- a/dev-ml/dune/Manifest
+++ b/dev-ml/dune/Manifest
@@ -1,2 +1,3 @@
DIST dune-2.9.3.tar.gz 1387667 BLAKE2B 3db54c780b9d13f40c774f53c3fe471dba4a640e7cb5aa5d70ef1dc20a217b95a66149ca5f99f07f3a20450577d622e0cda149f656f06f5a42231b89667c1152 SHA512 df6e06a9beebf41f3ed375384be781b5c87c7949048995cc0bbad13dd65c96bd8b27415cd41e43b1112bd86524a59a7dd418e14b5c72b4f1f8fd4ac5ca2d1494
DIST dune-3.16.1.tar.gz 3000392 BLAKE2B 93de09c47fda95e1d83f10c9a4e7cfb7f801c7c4e47acbed7a20ef614ff3a6585d8a25b8617c8ee45d338006a99084d096990d1e8c3cbeb6613caa7f0e1a70b5 SHA512 18e8022c5fa276e06f788cf25a4d6d08e3247c546cd69a5206d4e78ece1f47a615c6d5842e68e1fa7908cae7ae8c6e4f31d2eb835d97b5e6b5e4154957139e9f
+DIST dune-3.17.2.tar.gz 3015019 BLAKE2B 8b79e0f6d878722529c21069de7975642351e9dbbf8508a04677a8e04d7eab53dffca785d52dbdbbd4fd28635f2a0bc29abf04f0d9fd87cf6d0ba26b470b4c6c SHA512 8feaf89c5bada83d840e6a1e42ae9308375b07dabc2363015b667bcff638dd78acd526c1a43dd4730ab675b4828f7304e503b97e9f53397e73ed4e644693f260
diff --git a/dev-ml/dune/dune-3.17.2.ebuild b/dev-ml/dune/dune-3.17.2.ebuild
new file mode 100644
index 000000000000..3c4d0f01b70b
--- /dev/null
+++ b/dev-ml/dune/dune-3.17.2.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multiprocessing elisp-common
+
+DESCRIPTION="A composable build system for OCaml"
+HOMEPAGE="https://github.com/ocaml/dune"
+SRC_URI="https://github.com/ocaml/dune/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="emacs"
+RESTRICT="strip test"
+
+RDEPEND="
+ >=dev-lang/ocaml-4.08:=
+ emacs? ( >=app-editors/emacs-23.1:* )
+"
+DEPEND="${RDEPEND}"
+
+QA_FLAGS_IGNORED="usr/bin/dune"
+
+BYTECOMPFLAGS="-L ${S}/editor-integration/emacs"
+SITEFILE="50${PN}-gentoo.el"
+
+src_prepare() {
+ default
+
+ # This allows `dune --version` to output the correct version
+ # instead of "n/a"
+ sed -i "/^(name dune)/a (version ${PV})" dune-project || die
+}
+
+src_configure() {
+ ./configure \
+ --libdir="$(ocamlc -where)" \
+ --mandir=/usr/share/man \
+ --docdir=/usr/share/doc \
+ --etcdir=/etc \
+ --datadir=/usr/share \
+ --sbindir=/usr/sbin \
+ --bindir=/usr/bin \
+ || die
+}
+
+src_compile() {
+ ocaml boot/bootstrap.ml -j $(makeopts_jobs) --verbose || die
+ ./_boot/dune.exe build @install -p "${PN}" --profile dune-bootstrap \
+ -j $(makeopts_jobs) --display short || die
+
+ use emacs && elisp-compile editor-integration/emacs/*.el
+}
+
+src_install() {
+ # OCaml generates textrels on 32-bit arches
+ if use arm || use ppc || use x86 ; then
+ export QA_TEXTRELS='.*'
+ fi
+ default
+
+ mv "${ED}"/usr/share/doc/dune "${ED}"/usr/share/doc/${PF} || die
+
+ if use emacs ; then
+ elisp-install ${PN} editor-integration/emacs/*.el{,c}
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+}