package opam-client

  1. Overview
  2. Docs

Handles concrete actions on packages, like installations and removals

val download_package : OpamStateTypes.rw OpamStateTypes.switch_state -> OpamTypes.package -> (string option * string) option OpamProcess.job

download t pkg downloads the source of the package pkg into its locally cached source dir. Returns Some (short_errmsg option, long_errmsg) on error, None on success. See OpamTypes.download.Not_available.

This doesn't update dev packages that already have a locally cached source.

prepare_package_source t pkg dir updates the given source dir with the extra downloads, overlays and patches from the package's metadata applied.

val prepare_package_build : OpamFilter.env -> OpamFile.OPAM.t -> OpamTypes.package -> OpamTypes.dirname -> exn option OpamProcess.job

prepare_package_build env opam pkg dir is a lower level version of `prepare_package_source`, without requiring a switch and without handling extra downloads.

val build_package : OpamStateTypes.rw OpamStateTypes.switch_state -> ?test:bool -> ?doc:bool -> OpamTypes.dirname -> OpamTypes.package -> exn option OpamProcess.job

build_package t build_dir pkg builds the package pkg within build_dir. Returns None on success, Some exn on error. See download_package and prepare_package_source for the previous steps.

val install_package : OpamStateTypes.rw OpamStateTypes.switch_state -> ?test:bool -> ?doc:bool -> ?build_dir:OpamTypes.dirname -> OpamTypes.package -> (OpamFile.Dot_config.t option, exn) OpamCompat.Either.t OpamProcess.job

install_package t pkg installs an already built package. Returns None on success, Some exn on error. Do not update OPAM's metadata. See build_package to build the package.

val removal_needs_download : 'a OpamStateTypes.switch_state -> OpamTypes.package -> bool

Find out if the package source is needed for uninstall

val remove_package : OpamStateTypes.rw OpamStateTypes.switch_state -> ?silent:bool -> ?changes:OpamDirTrack.t -> ?force:bool -> ?build_dir:OpamTypes.dirname -> OpamTypes.package -> unit OpamProcess.job

Removes a package. If changes is unspecified, it is read from the package's change file. if force is specified, remove files marked as added in changes even if the files have been modified since.

Returns true whenever remove_package is a no-op.

val cleanup_package_artefacts : OpamStateTypes.rw OpamStateTypes.switch_state -> OpamTypes.package -> unit

Removes auxiliary files related to a package, after checking that they're not needed

Compute the set of packages which will need to be downloaded to apply a solution. Takes a graph of atomic actions.