./misc/ocaml-opam, OCaml package manager

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 2.0.0_beta5, Package name: ocaml-opam-2.0.0_beta5, Maintainer: jaapb

OPAM is a source-based package manager for OCaml. It supports multiple
simultaneous compiler installations, flexible package constraints, and a
Git-friendly development workflow.

Required to run:
[www/curl] [lang/ocaml] [devel/ocaml-cmdliner] [lang/camlp4] [devel/ocaml-extlib] [devel/ocamlgraph] [devel/ocaml-re] [misc/ocaml-cudf] [misc/dose3] [textproc/ocaml-jsonm] [misc/ocaml-opam-file-format] [devel/ocaml-jbuilder]

Required to build:

Master sites:

SHA1: 35bea9b3ecd59c9e878705bf6481a3c9c96bcc65
RMD160: 0978ea3701a898c4f7d5e0fdc4c9052d5e11f5b7
Filesize: 759.362 KB

Version history: (Expand)

CVS history: (Expand)

   2018-01-10 17:33:23 by Jaap Boender | Files touched by this commit (4) | Package updated
Log message:
Updated package misc/ocaml-opam to version 2.0.0beta5.

This version includes several bugfixes; see the CHANGES file.
   2018-01-01 22:18:57 by Adam Ciarcinski | Files touched by this commit (629) | Package updated
Log message:
Revbump after boost update
   2017-09-08 21:10:21 by Jaap Boender | Files touched by this commit (1)
Log message:
Obviously, we can't install opam using opam, as it hasn't been installed
yet, so do it explicitly using the opam-installer we just built
   2017-09-08 18:50:46 by Jaap Boender | Files touched by this commit (4) | Package updated
Log message:
Updated package to latest version, 2.0.0beta4. Changes include:

* Building with OCaml < 4.02.3 is no longer supported
* Support compilation with a built-in mccs solver (removing run-time dependency
  to aspcud). Integrated half-working "heuristics" dropped.
* Remove jsonm and transitive uutf dependency.
* Switch build systems to `jbuilder`, including `lib-ext` support
* Allow repeated and or'd arguments to the `list` command
* Many code and build system portability fixes (Windows, BSD)
* Add `switch export --full` to include package definitions
* Add `announce:` and `stamp:` fields to repositories (`repo` files)
* Add a global cache of git objects (greatly speeding up multiple cloning)
* Allow `opam pin URL` without a package name
* Many error handling, messages and corner case fixes
* Updated the versions of dependencies
* Removed the unused `features:` field, and proposal for a new syntax
* More informative exit codes, and documentation thereof
   2017-09-08 11:51:27 by Jaap Boender | Files touched by this commit (113) | Package updated
Log message:
Recursive revbump associated with update of ocaml to 4.05
   2017-08-24 22:03:43 by Adam Ciarcinski | Files touched by this commit (621) | Package updated
Log message:
Revbump for boost update
   2017-07-13 12:27:27 by Jaap Boender | Files touched by this commit (1)
Log message:
Added bash to USE_TOOLS. Thanks to joerg@ for pointing out that it's
   2017-07-11 12:46:23 by Jaap Boender | Files touched by this commit (9) | Package removed
Log message:
Updated package to latest version, 2.0.0beta3 (this sadly needs to be done
now as several packages rely on this version for building).

Changes include:
Changes prefixed with "(*)" are potentially breaking to scripts or existing
repositories (changes that are automatically handled by the format upgrade tools
are not marked).

* (*) Renamed `--soft-request` to `--best-effort`
* Fixed and improved speed of the package file tracking mechanism
* Added `--ignore-constraints-on` to temporarily bypass version constraints on
  some dependencies
* Fields `build-test:`, `build-doc:` are now deprecated, in favor of specifying
  conditions on the `with-test` and `with-doc` variables within the `build:`
  field, and of the new `run-test:` field
* (*) The command-line options have been renamed accordingly to `--with-test`
  and `--with-doc`
* Removed the `opam build` command
* Allow directories in place of package specifications for the `install`,
  `remove`, `upgrade`, `reinstall` and `show` commands. `opam` files can also be
  specified for `install` and `show`
* On local switch creation, check for package definitions and choose a
  compatible compiler if possible
* Add `opam install|remove --destdir` to copy the package's installed files
  somewhere else
* Allow `opam init --config=URL`

* Fixes (mainly to `opam build`)
* Faster coinstallability check

* New, by-hash package archive caching system
* Simpler HTTP repository update
* Allow specification of multiple checksums per file
* Add `opam reinstall --pending`, to handle reinstallations of changed packages
* Support for defining trust anchors and repository validation hooks (for use
  with Conex)
* (*) Added `opam install --working-dir`, removed "mixed mode" for \ 
pinned packages
* Added `opam install --soft-request`, a non-failing "do what can be done"
  install mode
* Simplified, better conflict messages
* Added `opam list --coinstallable-with PKG`
* Added command `opam clean`
* Added `opam upgrade --all PKGS`, to do a full upgrade while guaranteeing
  `PKGS` are kept installed
* Allow `&` in conflict version constraints, e.g. `conflicts: \ 
"foo" {>= "3" & <
* Added an `opam admin` command, with various, better organised repository admin
  commands, and remove the `opam-admin` tool
* Added an `opam build` command, to handle `opam` files found in the current
* Internally upgrade repositories in 1.2 format automatically to 2.0 (on `init`,
  `update` or `repo add`)

* Merge stdout and stderr of child processes by default
* Fixed regression on solver call times
* Added a few shorter command aliases: `opam var` `opam exec`, `opam env` for
  the corresponding `opam config` commands
* (*) Simplified `opam repo` to only use `add` and `remove` in normal use,
  always meaning the current switch (only) if not specified otherwise
* (*) Restrict package names and versions to a reasonable character set
* Added support for SHA256 and SHA512 checksums
* Separated the opam format lexer/parser/printers into a separate
  `opam-file-format` library
* Reporting on package definition file errors only when the file will be used,
  and on by default (rather than all-off by default, and optionally all-on)
* `opam lint` now accept multiple input files
* `opam pin` interface yet improved, allow pinning all at once when a source
  directory contains multiple packages. `opam unpin <dir>` now allowed to \ 
  `opam pin <dir>`
* Updated version of the dose lib dependency
* (*) All patch files used in package definitions are now assumed to apply with

* Added pre and post hooks for package command sections; allowed per-switch
* Re-packaged the libraries and opam into 7 individual packages
* Convert opam 1.2 files on the fly when pinning
* `opam list` can now match patterns on versions
* Allow switches to be created below arbitrary directories using `opam switch
  create <dir>`. Automatically select a switch found in `$PWD`
* Add `install --reuse-build-dir` to be used together with `--keep-build-dir`
  and allow incremental recompilations
* Add `install --inplace-build` to build locally pinned packages directly in
  their source directory

* (*) Refactored 'opam switch' command, creation of new switches no longer implicit
* (*) Allow per-switch selection of repositories
* Better update of the environment variables across switches or opam roots
* Add `opam install --restore` to recover packages that got removed due to
  errors or interruptions
* Added `synopsis:` and `description:` fields to integrate package descriptions
  in a single package definition file
* Removed the clever hack to skip downloads when uninstalling packages with
  `ocamlfind remove`; this now needs to be explicit through the
  `light-uninstall` flag.
* Provide `opam admin upgrade-format` to migrate package repositories to the new
  format, and create the proper OCaml compiler package wrappers
* Allow initialisation parameters from a .opamrc file, possibly completely
  overriding OCaml and opam.ocaml.org repository defaults

* Extended the `opam lint` command-line options (package descriptions from opam
  metadata, warnings selection)
* Allow to create a new switch with `opam switch import`
* (*) Rewritten, much more flexible `opam list` command, with composable filters and
  output selection
* Delay the removals of packages as much as possible, avoiding most cases of
  mass uninstalled packages after a build failure
* Use a specific `opam` user-agent for downloads
* Remove globalisation of compiler package variables and support for
  `available:` constraints depending on those. Rewrite the repository
  accordingly to use explicit dependencies towards the compiler version.

* Changed license to LGPL 2.1 with linking exception, like OCaml (#2573)
* Track files installed by packages for cleaner removal and listing, add `opam
  search --owns-file` (#502, #1215) *this requires packages to properly separate
  build and install*, or unrelated files could get removed on package uninstall.
* Allow command wrappers around package build/install/remove commands to be
  defined in `~/.opam/config`; include sample Linux wrappers to restrict process
  permissions (e.g. ensure `build:` doesn't install)
* (*) Reworked `opam show`, with more fields and the ability to select raw fields
  from the opam file (#2122)
* Dropped ability to compile opam with OCaml earlier than 4.01.0
* Version constraints in `depopts:` allowed again, but with consistent semantics
* Allow mixing filters within dependency constraints
* More flexible `opam pin` command interface
* New internal file-lock handling, less obtrusive and safer
* New `switch export` format, now including local (pinned) package definitions
* No longer uses insecure arguments of curl/wget (#55, #2006, #2460)
* Installed package source and metadata are now handled per-switch, which is
  more reliable
* `opam pin edit` now allows changing version and even URL; better editor
* Discarded built-in variables based on polling OCaml (they are now defined by
  the compiler package at installation)
* Discarded compiler files, `opam switch` now based on packages with the
  `compiler` flag set
* Extended package configuration files
* Allow initialised opam without switch, initialised switch without compiler.
  Better handling of compiler install failure
* (*) Large API rework, switch and repository state now handled separately, used in
  functional style and avoiding many loads
* Git submodules are now automatically fetched by the git backend
* (*) Package definition files now prioritize `&` higher than `|`, like is most
* (*) `opam list -a` now lists all available packages, even if they can't be
  installed (missing depends...), which is much faster (#2370)
* Added ability to reprint files with reduced diffs (#2363)
* Url and description can now be included within a single package definition
  `opam` file (#2328)
* Internal switch state now all below `<switch-dir>/.opam-switch/`, state in a
  single `switch-state` file (#2340)
* Add a `setenv:` field to package definitions, allowing to export environment
  variables (#2337, #2361)
* Built-in support for alternative solver `mccs` (#2333)
* `opam upgrade pkg` now prompts to install `pkg` if absent (#2327)
* (*) Assume plugin package and exec names start with "opam-" (#2316, \ 
* Reworked, cleaner and bidirectional file manipulation library (kind of lenses)
* Allow packages to specify extra remote overlay files within their definition
* Heuristic to detect bad solutions and print a hint when no solver is available
* (*) Proper URL handling with version-control + transport handling (e.g.
* Allow unescaped strings enclosed between `"""` markers in \ 
package definition
* Don't rely on '.zip' extension for downloaded archive handling (#2289)
* `opam config` extended with `set`, `unset`, `expand` subcommands, allows
  variables in `exec` argument (#2268)
* `conflict:` field is now handled as a disjunction in all regards (#2267)
* Better handling of concurrent removal/build/install actions (#2161, #2266,
* Allow fields `x-fieldname` in package definition files, for use by external
  tools (#2265)
* Extended, more useful JSON output (including full package failure logs)
* Use the switch paths that are defined in the switch configuration file (#2185)
* Allow package definition files to reference the package's own variables
  through "%{_:varname}%" (#2184)
* Initialise number of jobs from host's number of processors (#2180)