Manual Page Result
0
Command: cabal-module | Section: 5 | Source: OpenBSD | File: cabal-module.5
CABAL-MODULE(5) FreeBSD File Formats Manual CABAL-MODULE(5)
NAME
cabal-module - devel/cabal port module for building Haskell programs
DESCRIPTION
This manual page documents the behavior of setting MODULES=devel/cabal in
the ports(7) tree.
Uses cabal(1) to automate packaging Haskell binary projects. During
fetch, the dependent packages enumerated in MODCABAL_MANIFEST are
downloaded into the hackage subdirectory of DIST_SUBDIR. During
post-extract, the dependency sources are unpacked into WORKDIR. Special
care is taken to replace .cabal files if they are updated post-release on
hackage. A custom cabal.project.local file gets created to direct
cabal(1) to the extracted packages and prevent any network interaction.
In rare cases a custom cabal.project is required. This module
automatically copies such files from port's files into WRKSRC. During
build, cabal(1) is invoked to build the executables listed in
MODCABAL_EXECUTABLES.
lang/ghc and devel/cabal-install are added to BUILD_DEPENDS. This module
uses MASTER_SITES9 to download the sources from hackage.
This module parameters:
MODCABAL_STEM Name of the package on hackage (required).
MODCABAL_VERSION Version of the package (required).
MODCABAL_MANIFEST Hackage dependencies required by this package, see
below.
MODCABAL_DATA_DIR data-dir from .cabal file (if executable needs
this)
MODCABAL_REVISION Numeric revision of .cabal file on hackage if one
is needed on top of .cabal file contained in the
.tar.gz file.
MODCABAL_BUILD_ARGS passed to cabal v2-build
MODCABAL_FLAGS custom feature --flags for cabal(1).
MODCABAL_EXECUTABLES Executable target in .cabal file, defaults to
hackage package name in MODCABAL_STEM.
This module adds currently adds no make(1) targets.
DEPENDENCY MANIFEST
Hackage dependencies are listed in MODCABAL_MANIFEST as space separate
triples of package version revision. They correspond to the main package
values of MODCABAL_STEM MODCABAL_VERSION MODCABAL_REVISION.
The contents of MODCABAL_MANIFEST is normally generated by
devel/cabal-bundler which creates a working build plan from hackage
dependency information.
EXAMPLES
To create a new Haskell binary port one would install cabal-bundler port,
look up the chosen package version number on hackage. E.g.
$ cabal-bundler --openbsd cpphs-1.20
SEE ALSO
cabal(1), port-modules(5)
FreeBSD 14.1-RELEASE-p8 July 25, 2021 FreeBSD 14.1-RELEASE-p8