They're very expensive to run, especially if you don't have that many
cores, and can sometimes be a bit flaky (it looks like their CI doesn't
run things under the same constraints as we tend to).
Move them to a separate derivation, and make them test the actual
installed output rather than the local copy.
This seems to be required for the tests to pass on Hydra.
Otherwise, the test suit fails with errors like:
```
feature pygit2 failed: OpenSSL error: failed to load certificates:
error:00000000:lib(0):func(0):reason(0)
```
The conclusion is that Phabricator does not, in fact, generate stable
patch links. In any case, these have landed, so we can just use the
patches from Mercurial's hgweb instance instead, which should be more
stable.
The git extension is bundled in-tree, similarly to the hg gui, but also
requires pygit2. Enable it for mercurialFull, but don't bother with it
for the stock mercurial install.
Alas, it doesn't (yet?) work on nixpkgs because it doesn't support
octopus merges:
mercurial.error.ProgrammingError: git support can't handle octopus
merges, found a commit with 16 parents :(
I'm sure that commit is loved equally by all 16 parents.
tortoisehg intentionally wants to back-date the Mercurial build,
and some of the features we've added to the Mercurial build won't work
correctly under hg 5.6.
The Rust extensions provide speedups for core Mercurial functionality.
We should start building with them.
They're only CI-tested on Linux, so they're disabled for non-Linux
platforms for now by default.
* tortoisehg: untie from mercurial
When I've added `tortoisehg` package, it turned out that mercurial updates
sometimes broke thg. I've added a comment to `mercurial/default.nix` to
update torotisehg version during mercurial updates, but this worked the other way round:
mercurial stopped to be updated regularly (https://github.com/NixOS/nixpkgs/pull/60993).
And sadly it didn't solve the issue - https://github.com/NixOS/nixpkgs/issues/61759.
Here I'm trying to untie them. Tortoisehg will build a custom mercurial package
if versions don't match. This makes updating tortoisehg more complicated,
but it is still better than current situation.
* expose custom mercurial from thg package