# Maintainer: Konstantin Gizdov # Maintainer: Bruno Pagani # Contributor: Jakob Gahde pkgname=dune pkgver=3.7.1 pkgrel=2 pkgdesc="A composable build system for OCaml (formerly jbuilder)" arch=(x86_64) url="https://github.com/ocaml/dune" license=('Apache') depends=('glibc') makedepends=('ocaml>=5.0.0' 'ocaml-compiler-libs>=5.0.0' 'ocaml-csexp' 'ocaml-pp' 'ocaml-findlib') optdepends=('ocaml: Dune standard library') source=("${url}/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz") b2sums=('dd0f473a720fc65ac550a2aab64930ff472a9bd306d603f088d813817df56148f676abe2a56ff3458bb1ed887784e565154eee08988bf984585b35bc9333d929') _dune_release_pkgs=('dune' 'dune-action-plugin' 'dune-build-info' 'dune-configurator' 'dune-glob' 'dune-private-libs' 'dune-site' 'dune-rpc' 'dyn' 'stdune' 'ordering' 'xdg' 'chrome-trace' 'ocamlc-loc') build() { cd "${srcdir}/${pkgname}-${pkgver}" # FS#74061 ./configure --libdir /usr/lib/ocaml make _boot/dune.exe # this runs `ocaml bootstrap.ml`, but keeps upstream's choice # dune build needs a comma separated list of packages local dune_release_pkgs='dummy' for _pkg in "${_dune_release_pkgs[@]}"; do dune_release_pkgs+=",${_pkg}" done dune_release_pkgs="${dune_release_pkgs#dummy,}" echo "Building packages: ${dune_release_pkgs}" ./dune.exe build -p "${dune_release_pkgs}" --profile dune-bootstrap } # Tests require a bunch of (currently) unpackaged dependencies # check() { # cd "${srcdir}/${pkgname}-${pkgver}" # make test # } package() { cd "${srcdir}/${pkgname}-${pkgver}" # we need to install packages one by one for _pkg in "${_dune_release_pkgs[@]}"; do ./dune.exe install "${_pkg}" --destdir="${pkgdir}" --prefix="/usr" --libdir="$(ocamlfind printconf destdir)" done # Fix doc and man install install -d "${pkgdir}"/usr/share mv "${pkgdir}"/usr/{doc,share/} mv "${pkgdir}"/usr/{man,share/} install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}" ln -s /usr/share/doc/pp/LICENSE.md "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" }