diff options
| author | root <root@alpha.trunkmasters.com> | 2026-07-04 03:04:33 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-07-04 03:04:33 -0500 |
| commit | d5f9077fde66bffd2bc6d193ae7c967e352a5562 (patch) | |
| tree | 7f4e638af1165dc34e405c5ff1f860f3e0c6c4f4 /dev-ml | |
| parent | 5f7788dcac066b42562f59afc4b79d7ed272bfcc (diff) | |
| download | baldeagleos-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/Manifest | 1 | ||||
| -rw-r--r-- | dev-ml/dune/dune-3.23.1.ebuild | 183 |
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 +} |
