# Maintainer: Konstantin Gizdov # Maintainer: Bruno Pagani # Contributor: Jakob Gahde pkgname=dune pkgver=3.2.0 pkgrel=1 pkgdesc="A composable build system for OCaml (formerly jbuilder)" arch=(x86_64) url="https://github.com/ocaml/dune" license=(Apache) depends=('glibc' 'ocaml>=4.13.1' 'ocaml-csexp' 'ocaml-pp') source=("${url}/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz") sha512sums=('a90ac689d97acab956fd96f16f7c6cfdc95d01785fc14f0d3c8ab39231ff78e8941d2db2fa8cbfaa39bbed8f865e11b628aacae1b22df49512a57d0263c0dca4') _dune_release_pkgs=('dune' 'dune-action-plugin' 'dune-build-info' 'dune-configurator' 'dune-glob' 'dune-private-libs' 'dune-site' 'dyn' 'stdune' 'ordering' 'xdg' 'fiber') build() { cd "${srcdir}/${pkgname}-${pkgver}" # FS#74061 ./configure --libdir /usr/lib/ocaml make 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" }