Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: OCamlPro/opam
base: 377425a98d
head fork: OCamlPro/opam
compare: 0.9.4
Checking mergeability… Don't worry, you can still create the pull request.
This comparison is big! We're only showing the most recent 250 commits
Commits on Jan 11, 2013
@samoht samoht On startup check that repository state are consistent and try to fix …
…eventual issues.

This could be extended later by adding more consistency checks.
@samoht samoht Improve again the output in case of errors. f2f01f2
@samoht samoht Improve output of 'opam info' when the description is short (ie. only…
… one line).
@samoht samoht Improve the pin consistency checks, and consider that the pinned pack…
…age is the one with max-version. I guess it would be better to give the option to the user to choose which is the corresponding version but no hurry.
@samoht samoht Fix-up 'up-to-date' messages on 'opam update'. 6ed456a
@samoht samoht Better message when the version of OPAM is not up-to-date.
It's maybe a bit harsh to beg the user to upgrade on every opam invocation, but I guess we could improve that with 1.0.0.

This should fix #382
@samoht samoht Register some global statistics. Use OPAMSTATS=1 to activate. e374647
@samoht samoht Fix 'opam pin --force' 5580784
Commits on Jan 12, 2013
@samoht samoht Improve opam-mk-repo message when it fixes a checksum 2bd42db
@samoht samoht Filename.get_temp_dir_name does not exists in OCaml 3.12.1
This should fix #386
Commits on Jan 13, 2013
Mehdi Dogguy Pcre was renamed into Re_pcre 544a04f
@samoht samoht Add a patch to make dose use the new re.pcre API instead of pcre-ocaml.
This is not activated yet as need to wait for upstream changes and #387.
@tuong tuong we continue 995cea3
The fix-point is really really 1 step now.
@samoht samoht Merge pull request #388 from tuong/master
we continue 995cea3
Commits on Jan 14, 2013
@samoht samoht Display a warning if one of the base package is not installed 97aa1f2
@samoht samoht More stats 72547f1
@chambart chambart When an external solver is available, make a correct request for it. 45479fd
@samoht samoht Fix update of compiler description on 'opam update'. 4d9415d
@samoht samoht Merge branch 'master' of 9e45f6a
@samoht samoht Merge pull request #389 from chambart/master
Format the install request build in opamClient so that an external cudf solver can solve it correctly
@samoht samoht Fix initialization.
Check the consistency of base-package only when we switch.

This should fix #390
@samoht samoht Merge branch 'master' of 8d306e1
Commits on Jan 15, 2013
@samoht samoht Update to ocaml-re 1.2.0
This is related to #387
@samoht samoht Merge pull request #387 from mehdid/master
Pcre was renamed into Re_pcre
@samoht samoht Merge branch 'master' of 20abd32
@samoht samoht Fix end-of-line warning with OpamVersion 8cd4718
@samoht samoht Fix to make the new ocaml-re compile 366a87c
@samoht samoht Update dose patch for the new ocaml-re c1c6c03
@samoht samoht Update CHANGES 972415e
@samoht samoht Bump version number b644f1f
@avsm avsm improve the main help text 5581e09
@samoht samoht Merge pull request #392 from avsm/master
improve help text
@samoht samoht Bump trunk version to 0.9.2 67f5cba
@samoht samoht Merge branch 'master' of 39f3e12
@samoht samoht Fix 'opam-mk-repo -a' 43e1a71
@samoht samoht Look for opam-lib to check if OPAM is up-to-date and do no ask the us…
…er if he really wants to continue as it's a bit annoying.
@samoht samoht Update CHANGES 2e87e9c
@samoht samoht Do not remove log file of a command with an error. 5fc7387
@samoht samoht Fix 'opam-mk-repo --index' 418fa02
@samoht samoht Update CHANGES ad103a6
@samoht samoht Remove left-over pinned cache (this can happen sometimes when the pin…
…ned package failed to build).
@samoht samoht Update CHANGES 75c6e9b
@samoht samoht Be a bit less aggressive when caching the cache of pinned package. 951f0bd
@samoht samoht Fix previous commit ... this should work now. 5f213a6
@samoht samoht Be more robust when an installed package disapear. a7c39bb
@samoht samoht Fix 'opam help' to display the main help page.
This should fix #397 (thx to @dbuenzli)
@samoht samoht Fix typo 301c89e
@samoht samoht Update generated man pages a843bdf
@samoht samoht Update API docs f735b79
@samoht samoht 'opam update <pinned-package>' works.
This should fix #396 (which is quite annoying when you don't have network access)
@samoht samoht Update CHANGES 120d6d8
Commits on Jan 17, 2013
@samoht samoht Add a binary auto-install script (thx to @lefessan) d73a2c0
@samoht samoht Expose a function to check whether a command is available in the envi…
@samoht samoht Make a bit more user friendly when you don't care abo…
…ut log files.
@samoht samoht Support for opam-<cmd>
when running 'opam foo -x -y', if 'opam-foo' is in the PATH then, OPAM will call 'opam-foo -x -y'.
remark: it's not possible to overwrite default commands.
@samoht samoht Update CHANGES af219d7
@samoht samoht Remove debug printf statement 1f168b3
@samoht samoht -s is --switch and --short; get ride of it for --switch and use -w 2c99fbc
Commits on Jan 21, 2013
@samoht samoht Prevent opam-mk-repo for deleting tmp/ and log/ subdirs if these dire…
…ctories already exist.

This is quite a bad bug and should fix #403
@samoht samoht Fix typo (thx to @smondet) 2e86058
Commits on Jan 22, 2013
@samoht samoht Fix 'opam pin <package> none' 2a12c4b
@hypatian hypatian Modified to fall back to copy if link is not supported. 7a1cfa8
@samoht samoht Merge pull request #410 from hypatian/master
Modify to fall back to copy if link is not supported
@samoht samoht Fix using pipe for 'opam switch import/export' ea3d41a
@samoht samoht Merge branch 'master' of 6203f1d
@samoht samoht Fix lexer line location fbc0058
@samoht samoht Make OPAM more robust to syntax errors in opam files 7692a49
@samoht samoht Improve lexing/parsing error messages 5022b55
@samoht samoht Do not call load_state before installing a package: this has a side-e…
…ffect to delete the temp dirs associated to uninstalled package, so this breaks initial installation of devel and pinned packages (which are reinstalled from scratch on the first update).
@samoht samoht Specify the call-site when using load_state. 8300286
@samoht samoht Use curl --insecure when bootstraping OPAM
This should fix #408
@samoht samoht Add a 'short' option to display repositories
'opam repo -s' now displays a compact list of repositories (which could be used by opam update)
@samoht samoht Really add the list of pinned packages to 'opam repo -s'
This should help writing auto-completion scripts (see #375)
Commits on Jan 23, 2013
@samoht samoht Speed-up the 'opam config env' command.
This should fix #412
@samoht samoht Speed-up file access by not using lseek
This is related to performance improvments mentionned in #412
Commits on Jan 24, 2013
@avsm avsm clean out the source directory before building fresh version 40f0302
@samoht samoht Merge pull request #413 from avsm/master
jenkins fix
Commits on Jan 25, 2013
@samoht samoht Fix 'opam repo remove <pkg>' 4545e69
@samoht samoht Update CHANGES 34a7a97
@samoht samoht Clean-up left-over repositories when creating new ones with the same …
@samoht samoht remote => repository API change 90a67b5
@samoht samoht Merge branch 'master' of e45c0be
Commits on Jan 27, 2013
@samoht samoht Install all the API libraries 57bb526
@samoht samoht Update CHANGES 89204a8
Commits on Jan 28, 2013
@samoht samoht Use a 'patch' command which should work on BSD 751b4ea
@samoht samoht Do not clean tmp files in repository caches if there exists at least …
…a compiler having the package installed.
@samoht samoht Do not check the consistency on every state load, as this can be wron…
…g in some cases (ie. for instance, when the global lock is taken).

Previously, having a long-running 'opam install <foo>' command in one term and an 'opam list' in an other will break in an horrible way as the 'opam list' consistency check will remove the eventual tmp dirs created by 'opam install <foo>'

This is fixed by doing global consistency check only when we have the global lock (ie. when we know that no other operation can be done concurrently) and switch consistency checks when we have the right switch lock.
@samoht samoht Add implicit env variables when building packages.
@samoht samoht Fix 'make install' target (regression introduced by 57bb526) eb581e1
@samoht samoht Fix broken `opam config env` (introduced by 7551244)
CAML_LIBRARY_PATH and custom compiler variables were not displayed properly.

This should fix #417
Commits on Jan 29, 2013
@samoht samoht 'opam config var' needs an argument
Fix #418
@samoht samoht Add "root" to the list of implicit variables.
This should fix #419
@samoht samoht Refactor some API bits and improve the error displayed to the user wh…
…en using 'opam repository <COMMAND>s'
@samoht samoht fix application of patches for BSD. This should fix #414 3d91f03
Commits on Jan 30, 2013
@samoht samoht Fix stupid typo which was breaking patch application. 288be03
@samoht samoht Small fixes to improve error recovery:
* when the extract phase is failing, recover from errors (this should fix #402)
* when the user do CTRL-C let the child clean-up properly
@samoht samoht Do not display scarry backtrace on 'normal' exits 5236688
@samoht samoht Fix unit-tests b4ceb3e
@samoht samoht Fix jenkins init f811688
@samoht samoht Update jenkins 83a6b20
@samoht samoht cd src_ext && make distclean should work even if ./configure has not run 36d6900
@samoht samoht Really fix the jenkins init script (at least) b40720e
@samoht samoht Remove duplicated code 58877cb
@samoht samoht Make compiler updates more robust 6c6a8d2
Commits on Feb 01, 2013
@samoht samoht Improvement to the solver heuristics
This should fix #415
@samoht samoht Bump trunk version number 1b46b99
@samoht samoht Revert version bump 5f104d8
@samoht samoht Fix solver exn 3fb1a97
@samoht samoht Bump version again 60dc8ae
Commits on Feb 03, 2013
@samoht samoht Marshal the list of packages and descriptions on each update in order…
… to speed-up opam invocations.
@samoht samoht Fix 'opam update' when a package suddendly become unavailable d6827fc
Commits on Feb 04, 2013
@oandrieu oandrieu check for camlp4 presence and version in configure
fixes issue #431
@samoht samoht Do not remove the lock when it has not been locked 55420a8
@samoht samoht Merge branch 'issue/431' of git:// 7d522fa
@samoht samoht Update generated configure file ea7b252
@avsm avsm autoconf: More helpful error message to indicate how to possibly fix …
…the camlp4 missing problem
@avsm avsm remove caml4boot from the test, as its not used and sometimes (on Deb…
…ian?) not installed.
@avsm avsm regenerate autoconf from 1465af9 b90ba46
@samoht samoht Merge pull request #433 from avsm/master
autoconf fixes for 3.12.1
@samoht samoht Expose Cudf.string_of_packages ed692c7
@samoht samoht Fix the solver when newer packages have bigger deps than old ones. 7017548
@samoht samoht Update CHANGES f90c18e
@samoht samoht Merge branch 'master' of 5ce274b
@samoht samoht Remove unused variable 10cec9f
@oandrieu oandrieu truncate `opam list' output w.r.t. the size of the current terminal
Terminal size is determined using the `tput' or `stty' external commands.
No truncation when stdout is not a terminal (ie redirected to a file).
@samoht samoht Merge pull request #436 from oandrieu/truncate-terminal-output
truncate `opam list` output w.r.t. the size of the current terminal
Commits on Feb 05, 2013
@samoht samoht Fix embarrasing #439 4f6495d
@samoht samoht Fix typo c29509a
@samoht samoht Remove duplicated message about cached metadata on 'opam init'. c8ea767
@samoht samoht Speed-up 'opam update'. 213e168
@samoht samoht Add a better error message in case of cyclic dependencies.
This should help debugging issues like #438
@samoht samoht Fix a nasty bug in the solver with possible cyclic dependencies (this…
… should fix #438)
@samoht samoht More generic fix to #438 ec2f8b7
@samoht samoht Again a more generic fix for #438
1/ we discard packages with cyclic dependencies
2/ we only keep the package P_k (name = P, version = k) iff reverse-deps(P_k) = U reverse-deps(P_j) for all other version j of P.
Commits on Feb 06, 2013
@samoht samoht Improve messages on update 380af12
@samoht samoht Improve the detection of cyclic dependencies.
This should improve 932e6b8
@samoht samoht Better error messages when something goes wrong in OpamFilename 0ad722a
@samoht samoht copy_dir actually does something different than its name could let th…
…ink of: rename into copy_unique_dir and add a real copy_dir function
@samoht samoht Fix #440 6239c1c
@samoht samoht Update CHANGES b857ef8
@samoht samoht Fix #435
For pinned packages, 'opam reinstall <pkg>` is now a shortcut to 'opam upgrade <pkg> && opam update <pkg>`.
@samoht samoht Fix unit-tests.
The cache handling is quite sensitive to change, need to put some big flashing warning around this I guess ...
@samoht samoht Improving again the messages on 'opam update' deeddb3
@samoht samoht Add unit-test for complex os filters e68121e
@samoht samoht Fix parsing of complex os constraints 00c0dc7
@diml diml Fix OpamFormula.eval 967e20f
@samoht samoht Don't remove installed roots on upgrade ... b16b5a3
@samoht samoht Consistant naming of dependencies / reverse-dependencies 6746877
@samoht samoht Try to improve partial upgrade 25a1b71
@samoht samoht Merge pull request #442 from diml/master
Fix OpamFormula.eval
Commits on Feb 07, 2013
@avsm avsm update CHANGES to be more changelog friendly 687127b
@samoht samoht Fix <git-path>#<revision> scheme when the revision is a tag (it was o…
…nly working with SHA1 of commits).
@samoht samoht Merge pull request #444 from avsm/master
fix changes for ocl-reporter
@samoht samoht Fix #405
We now uninstall all the packages before starting the installation process.

This means that we must be very carefull when error arise, or the user will be let in a state where everything is broken. I think I found some bugs in the previous attempt to recover from errors, so we are now much more conservative (and hopefully safer). The rule now is:
* try to install most of the packages (ie. a package is installed if none of its dependencies have an error)
* on error, try to install the previous version of the package. If it's not possible, do nothing. Ideally, we should run the solver again to find a consistent solution without the eror package but I guess it's a bit overkill.
@samoht samoht Merge branch 'master' of 637394a
Commits on Feb 08, 2013
@samoht samoht Improve OpamAction API to make clearer when metadata is updated or not.
Improve the display of 'opam install' as well.
@avsm avsm typo in CHANGES 594b1db
@samoht samoht Merge pull request #445 from avsm/master
another typo in changes
Commits on Feb 12, 2013
@chambart chambart Update bash completion 971e3e9
@samoht samoht Merge pull request #453 from chambart/master
Update bash completion
@cago cago Update zsh completion script f846a3b
@samoht samoht Merge pull request #454 from cago/master
Update zsh completion
@avsm avsm update jenkins 4e06a52
@avsm avsm jenkins: libglade 169e102
@avsm avsm jenkins: lzo 3183162
Commits on Feb 13, 2013
@avsm avsm jenkins: milter 9f57fed
@samoht samoht Merge pull request #458 from avsm/master
jenkins update
@avsm avsm jenkins: manual libsrs install (deb missing from wheezy) f82e73a
@avsm avsm Merge branch 'master' of 4c67054
@samoht samoht Merge pull request #460 from avsm/master
jenkins: srs
@avsm avsm jenkins: oqamldebug 3adba84
@avsm avsm jenkins: spf e78742a
@samoht samoht Rebuild the metadata cache when adding/removing/changing the priority…
… of repositories.
@samoht samoht Do not fail badly if opam-lib is not in list of available packages. 6a54731
@samoht samoht Fix both #463 and #446
The error messages are now much clearer:
* in case of a dependency is not available due to compiler/OS constraints
* in case the request deals with non-existing package/version
@samoht samoht Merge pull request #462 from avsm/master
jenkins: oqamldebug
@samoht samoht Merge branch 'master' of b384ec6
@samoht samoht Fix #455
We now have a more precise OPAM and OS versions in error messages
@samoht samoht Fix infinite loop introduced in the last commit 28bc173
@samoht samoht Rename OpamGlobals.default_switch and OpamCompiler.default to system …
…(as this is the name of the string anyway).
@samoht samoht Add a way to specify system compiler constraints.
The syntax is:

ocaml-version: [ !system ]
ocaml-version: [ "3.12.1" || system ]

Fix #461
@samoht samoht Update CHANGES c898594
Commits on Feb 14, 2013
@samoht samoht Fix build (I've updated the .ml instead of the ...) 248e2d7
Commits on Feb 15, 2013
@dbuenzli dbuenzli Make judicious use of U+1F42B if env variable $OPAMUTF8MSGS is set. bb98a39
@samoht samoht Merge pull request #400 from dbuenzli/bactrian-log
Make judicious use of U+1F42B on darwin.
@samoht samoht Remove a wrong assertion 10cc5bf
@samoht samoht Merge branch 'master' of dd282cb
@samoht samoht Fix indentation (no semantic changes) 9c998e9
@samoht samoht Tentative fix for #449
Use this as an excuse to clean-up this part of the code which has not been visited since a very long time.
Commits on Feb 17, 2013
@samoht samoht Trim the universe before computing brute force heuristics.
Remark: we don't trim it before as it is useful to have a full universe to better report error messages.
@samoht samoht Fix duplication of error messages in case of conflicts (see #474) 1fc6a55
@samoht samoht Add a function to keep only installable packages 0cbf9be
@samoht samoht In opam list, only display the installable packages.
This fixes #474
@samoht samoht Merge branch 'master' into HEAD e15ab3b
@samoht samoht Bump version 2849c57
@samoht samoht Fix #473 and #469

    opam info foo.version

will display the metadata associated to this given version
@samoht samoht Update CHANGES 99dffca
Commits on Feb 18, 2013
@samoht samoht Fix typo in 'opam info' 81fd826
@samoht samoht Display dependencies and optional dependencies in 'opam info' a7be340
@samoht samoht Improve the error message when trying to upgrade a pinned package. 2951785
@samoht samoht Update CHANGES 1829176
@samoht samoht Fix partial upgrade.

    opam upgrade foo bar

Will only upgrade foo and bar (and the necessary dependencies).

Also simplify *a lot* the management of packages to be reinstalled: this is now always done when we add/remove packages, in the same way the installed and installed.roots file are managed. This should make the whole process much more robust (especially in case of errors).
@samoht samoht First draft of external dependency handling d327f7d
@samoht samoht Clean-up the handling of tags in OPAM files.
For the user, the main change is the move from 'ext-deps' to
'depexts'. This is not very nice, but at least it stays consistent
with 'depopts'. But maybe the good move it to rename depopts to
opt-detps ...
@samoht samoht Plug a query system to the external dependency tags.
Now: 'opam install <query> --external=<comma-separated-list-of-tags>'

will look for all the packages which need to be installed by the query
and return all the values associated to the tags which are subsets of
the given list of tags.

For instance, if we have: packages/foo.v/opam

   depexts: [
     [ "debian"          "foo"]
     [["debian" "amd64"] "bar"]
     [ "amd64"           ["toto" "titi"]


   opam install foo.v --external=debian,amd64  # return: bar
   opam install foo.v --external=debian        # return: foo bar
   opam install foo.v --external=amd64         # return: bar toto titi

Remark: the tags and their values are unordered.

Hopelfully this system will be flexible enough to fix part of the
external dependencies problem (it will at least help opamalot).
@samoht samoht Try to keep the metadata consistent when saving them to disk. 9fd9436
@samoht samoht Update CHANGES 2a9c0dd
Commits on Feb 19, 2013
@samoht samoht Change the way we detect existing commands
`which` seems not very portable, so use `type` instead, because "type is standardized in POSIX" (thx @dbuenzli).

This should fix #471 and improve the BSD support.
@samoht samoht Update CHANGES 850d5d7
@adegroote adegroote teach opamGlobal and opamSystem.patch about NetBSD and DragonFlyBSD c67a2a3
@samoht samoht Revert "Change the way we detect existing commands"
This reverts commit e157b5f.
@samoht samoht Merge pull request #480 from adegroote/more_bsd_support
Teach opamGlobal and opamSystem.patch about NetBSD and DragonFlyBSD
@samoht samoht Improve the API. There are still some global state (the main one bein…
…g the filesystem -- it will be quite hard to abstract other it I'm afraid) but it's now easier to do all of the action available on the command-line using the API.

An example:

   let pkgs = OpamPackage.Name.Set.of_list [OpamPackage.Name.of_string "core"] in
   OpamClient.API.install pkgs

The message are still displayed on stdout/stderr so that could be a bit awkward.
@samoht samoht Merge branch 'master' of 8a1ad9c
@samoht samoht Update the HTML docs 24d4d9c
@samoht samoht Update the man pages d4bc545
@samoht samoht Update the tutorials c3944a6
@samoht samoht New tentative fix for #471 (woud be easier with a test machine) e283616
@samoht samoht Remove 'opam remote' as it is replaced by 'opam repository' since 0.9.0
Remark: if you find 'repository' too long, you can use 'opam repo' instead (as cmdliner looks for matching commands with the same prefix)
Commits on Feb 20, 2013
@samoht samoht Fix #471 6005519
@samoht samoht Update dev-manual
This should fix #468
@samoht samoht Refactoring f621715
@samoht samoht Reindent (no other changes) 432ac5d
@samoht samoht Add a 'tags' field in OPAM files.
This should help resolving part of #483
@samoht samoht Add (very basic) man pages for opam-mk-repo and opam-check
This should fix #432
@samoht samoht Update to latest version of ocp-build 11adfc6
@samoht samoht Fix copy/paste error (thx to @dbuenzli) e606cae
@samoht samoht The new ocp-build works well on cygwin, so OPAM will compile fine there. 8b1e3c1
Commits on Feb 21, 2013
@samoht samoht Add missing file to boostrap with ocp-build (regression introduced in 1… 4d00276
@samoht samoht Make 'opam config var switch' print the current switch
This can be useful when substituting variables in .opam files.
@samoht samoht Fix #360
OPAM now fails if curl returns an error (it should already work properly when using wget).

It will also help fixing #452 and #467
@samoht samoht Add more logging to help debugging #479 2d887f5
@samoht samoht Fix #467
Now both curl and wget tries to download 10 time an archive before giving up.

(and remove a wrong debug statement ...)
@samoht samoht First step towards a better handling of root packages (#470)
So now:

    'opam install <pkg>'

add <pkg> to the list of root packages even if <pkg> is already installed.
@samoht samoht Fix auto-detection of repository kind when using <git/repo/>#commit
The is related to #488
@samoht samoht Fix #488
It is now possible to add a given branch of a remote repository

    opam repository add genet-dev
@samoht samoht Fix #470
Add an option to enable --autoremove when removing packages (by default it's off). You can also enable it by setting OPAMAUTOREMOVE.

The semantics is the following:

* `opam remove <pkg>` will simply remove the package
* `opam remove <pkg> -a` will remove the package and its dependencies
* `opam remove -a` will remove all the packages which have not been explicitely installed

(note: you can do `opam install <pkg>` to an already installed package to make it become a 'root' package which will not be uninstalled using `-a`).
@samoht samoht Update CHANGES d635e4d
@avsm avsm let `make distclean` work idempotently
The `Makefile.config` include can be conditional.
Commits on Feb 22, 2013
@samoht samoht Merge pull request #490 from avsm/master
fix repeated make distclean
Commits on Feb 23, 2013
@avsm avsm jenkins: add system libs for new liquidsoap 946c06a
@avsm avsm Merge branch 'master' of d2ac7d5
@avsm avsm Merge pull request #494 from avsm/master
jenkins updates for liquidsoap
@avsm avsm Revert "Remove 'opam remote' as it is replaced by 'opam repository' s…
…ince 0.9.0"

This reverts commit 40ef748.
@samoht samoht Merge pull request #495 from avsm/revert_remote
Revert "Remove 'opam remote'
Commits on Feb 26, 2013
@samoht samoht Uninstall dependencies in the right order.
This should fix #491
@samoht samoht Fix #492
don't break badly if the system compiler suddenly disapears from the path.
@samoht samoht From now on, the only reason to recompile a package becomes "it has c…
…hanged upstream"

This means we do nothing if the 'opam' file has changed, which means: we can now modify 'opam' files without fear (eg. we can add more metadata when we need it).

This should fix #497
@samoht samoht Fix #394
Better error message when no OCaml compiler is available on init.
@samoht samoht Quiet the Makefile when compiling OPAM from a source archive 64c22c5