summaryrefslogtreecommitdiff
path: root/dev-ml
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-07-04 03:04:33 -0500
committerroot <root@alpha.trunkmasters.com>2026-07-04 03:04:33 -0500
commitd5f9077fde66bffd2bc6d193ae7c967e352a5562 (patch)
tree7f4e638af1165dc34e405c5ff1f860f3e0c6c4f4 /dev-ml
parent5f7788dcac066b42562f59afc4b79d7ed272bfcc (diff)
downloadbaldeagleos-repo-d5f9077fde66bffd2bc6d193ae7c967e352a5562.tar.gz
baldeagleos-repo-d5f9077fde66bffd2bc6d193ae7c967e352a5562.tar.xz
baldeagleos-repo-d5f9077fde66bffd2bc6d193ae7c967e352a5562.zip
Adding metadata
Diffstat (limited to 'dev-ml')
-rw-r--r--dev-ml/dune/Manifest1
-rw-r--r--dev-ml/dune/dune-3.23.1.ebuild183
2 files changed, 184 insertions, 0 deletions
diff --git a/dev-ml/dune/Manifest b/dev-ml/dune/Manifest
index e431a806556e..20ac3f2c7918 100644
--- a/dev-ml/dune/Manifest
+++ b/dev-ml/dune/Manifest
@@ -4,3 +4,4 @@ DIST dune-3.18.1.tar.gz 2918737 BLAKE2B 38731cdc61d2944f27487e844c554d0085e9a178
DIST dune-3.19.1.tar.gz 2917826 BLAKE2B 588a7d2195169ed1210a7126bd06cfdea4fa0e7735f23c346314c3cbbea1e76ec1286f1b56b337a151fc3246343c001794bde6a9eb85a4a05c6a1537ae2ae8bb SHA512 a101cad5d159a7134bd38d25968ea24189485b12f517e746c5b4c367a8d6ca0959ea59a71dc8c939e5d28a6ae644de9b3c12582579c044e3a081373ac680beb6
DIST dune-3.20.2.tar.gz 3051854 BLAKE2B ce0ff1b7503d0b3bc72fc9c7e1c167c33cf071257066117c16ad24d2d2aeb9c3a84dccd2e24132eb3a95c6f0ee254810e8b1a9f39e8dc81752a97948be8438c3 SHA512 efb4376e03a3e760ee230c22ba8ac788623382437d9e3551fdd6bacdca1c6aa2db90246feb011d3d0e7ba3afa47161ebd06c80cfb24e357a82f7764bf003e355
DIST dune-3.21.1.tar.gz 3431470 BLAKE2B cb0a155fff9e4c81438f31770856ab4a7107d78f5cca128aa675bb11ff62c66d4cffb4fb22e4a4f9eda8e9ec088cbf827b66a6511bd179a427bf16778cd42a0c SHA512 a304fc6bb854c3a1d5b86b3d3a942e140387ae82e52be240289ef89413d6e6017bc6869363aba3898d6a6be1cb31f4fe8b9264c735c87a1e18cad82a26054acb
+DIST dune-3.23.1.tar.gz 3710713 BLAKE2B 03080291f3f195d73bf7e88c799370ef5f1a36e2f443645b71d1f8403fbc3115af86f94ce8e7531283bac475af1fa918a29764adc75cbd0cf18e67ed28ffe554 SHA512 ffc3e0bc9e9b79dc58341fd9d7bbf4f7ad087708e469a36c6a4f773fd3b511293831524ca309f72a77ee17b33642d9ecc35d42dc8e76eff8fd0d43738911795b
diff --git a/dev-ml/dune/dune-3.23.1.ebuild b/dev-ml/dune/dune-3.23.1.ebuild
new file mode 100644
index 000000000000..5093b34b802e
--- /dev/null
+++ b/dev-ml/dune/dune-3.23.1.ebuild
@@ -0,0 +1,183 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+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 ~arm64 ~ppc ~ppc64"
+IUSE="emacs test"
+RESTRICT="strip !test? ( test )"
+
+RDEPEND="
+ dev-lang/ocaml:=
+ emacs? ( >=app-editors/emacs-23.1:* )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ test? (
+ app-misc/jq
+ dev-debug/strace
+ >=dev-lang/ocaml-5.4.0
+ dev-ml/csexp
+ dev-ml/lwt
+ dev-ml/pp
+ dev-ml/ppx_expect
+ dev-ml/re
+ dev-ml/spawn
+ dev-ml/uutf
+ dev-vcs/git
+ )
+"
+
+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
+
+ # the dune-project file for dune includes generating .opam files,
+ # but they differ from the committed versions in that they include a
+ # version entry. Supposedly "dune promote" should be able to update
+ # these files, but it always fails with an error that the generated
+ # opam files do not match the committed ones (because of this
+ # version field). These files are not in the install image, they
+ # only trip up testing.
+ find opam -name '*.opam' -exec sed -i "/^opam-version: \"2.0\"/a version: \"${PV}\"" {} + || die
+
+ # Remove tests from test/blackbox-tests that don't work for various
+ # reasons. The majority of these are taken from Debian's testing, but
+ # the list is expanded with additional tests that fail (for example,
+ # because unpackaged dependencies like js_of_ocaml)
+ #
+ # See: https://salsa.debian.org/ocaml-team/ocaml-dune/-/blob/master/debian/rules?ref_type=heads
+
+ # Tests that need melc
+ rm -r test/blackbox-tests/test-cases/melange || die
+ rm -r test/blackbox-tests/test-cases/merlin || die
+
+ # Tests that need files in /usr/doc
+ rm -r test/blackbox-tests/test-cases/cinaps || die
+ rm -r test/blackbox-tests/test-cases/inline-tests || die
+ rm -r test/blackbox-tests/test-cases/ppx || die
+ rm -r test/blackbox-tests/test-cases/utop || die
+ rm -r test/blackbox-tests/test-cases/jsoo || die
+ rm -r test/blackbox-tests/test-cases/ctypes || die
+
+ # Tests with other unsatisfied assumptions
+ rm -r test/blackbox-tests/test-cases/custom-cross-compilation || die
+ rm -r test/blackbox-tests/test-cases/subst || die
+ rm -r test/blackbox-tests/test-cases/pkg || die
+ rm test/blackbox-tests/test-cases/os-variables.t || die
+ rm -r test/blackbox-tests/test-cases/cram || die
+ rm -r test/blackbox-tests/test-cases/actions || die
+ #rm -r test/blackbox-tests/test-cases/foreign-stubs/github7146.t || die
+ rm -r test/expect-tests/vcs || die
+
+ # Many expect-tests fail, but common and test_scheduler are needed for the rest
+ mkdir test-libs || die
+ mv test/expect-tests/{common,test_scheduler} test-libs || die
+ rm -r test/expect-tests || die
+
+ # Flaky tests (to be investigated)
+ rm -r otherlibs/dune-site/test || die # failed on amd64
+ rm -r otherlibs/dune-rpc-lwt/examples/rpc_client/test || die # failed on riscv64
+ rm -r otherlibs/dune-rpc-lwt/test || die # failed on s390x
+ rm -r otherlibs/stdune/test || die # failed on i386
+
+ # requires dev-ml/opam
+ rm -r test/blackbox-tests/test-cases/stanzas || die
+ rm test/blackbox-tests/test-cases/empty-meta-version-gh9176.t || die
+ rm -r test/blackbox-tests/test-cases/workspaces || die
+
+ # requires js_of_ocaml
+ rm -r test/blackbox-tests/test-cases/separate-compilation-github3622 || die
+
+ # requires dev-ml/odoc
+ rm -r test/blackbox-tests/test-cases/odoc || die
+ rm -r test/blackbox-tests/test-cases/install-mld-pages || die
+
+ # requires dev-ml/menhir
+ rm -r test/blackbox-tests/test-cases/menhir || die
+ rm -r test/blackbox-tests/test-cases/formatting || die
+
+ # fails with a diff
+ rm -r test/blackbox-tests/test-cases/trace/action-traces || die
+ rm -r test/blackbox-tests/test-cases/trace/first-last-events.t || die
+ rm -r test/blackbox-tests/test-cases/tests-locks.t || die
+ rm -r test/blackbox-tests/test-cases/install-dir || die
+
+ # attempts to install outside of build dir
+ rm -r test/blackbox-tests/test-cases/install || die
+
+ # fails with newer versions of dune (> 3.17)
+ rm -r test/blackbox-tests/test-cases/hidden-deps-unsupported.t || die
+
+ # requires fdo
+ rm -r test/blackbox-tests/test-cases/fdo.t || die
+}
+
+src_configure() {
+ local confargs=(
+ --libdir="$(ocamlc -where)"
+ --mandir="${EPREFIX}"/usr/share/man
+ --docdir="${EPREFIX}"/usr/share/doc
+ --etcdir="${EPREFIX}"/etc
+ --datadir="${EPREFIX}"/usr/share
+ --sbindir="${EPREFIX}"/usr/sbin
+ --bindir="${EPREFIX}"/usr/bin
+ )
+ edo ./configure "${confargs[@]}"
+}
+
+src_compile() {
+ edo ocaml boot/bootstrap.ml -j $(get_makeopts_jobs) --verbose
+
+ local buildargs=(
+ build dune.install
+ -p "${PN}"
+ --profile dune-bootstrap
+ -j "$(get_makeopts_jobs)"
+ --display short
+ )
+ edo ./_boot/dune.exe "${buildargs[@]}"
+
+ use emacs && elisp-compile editor-integration/emacs/*.el
+}
+
+src_test() {
+ # Dune's own approach to testing relies on opam switches and
+ # vendored copies of necessary dependencies. The majority of these
+ # dependencies require dune itself to build.
+ #
+ # We take an approach similar to Debian where we keep the majority
+ # of the tests and remove those that don't work for whatever reason.
+ edo ./_boot/dune.exe runtest --display short
+}
+
+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
+}