The original `nexus` derivation required `/run/sonatype-work/nexus3`
which explicitly depended on the NixOS path structure.
This would break `nexus` for everyone using `nixpkgs` on a non-NixOS
system, additionally the module never created `/run/sonatype-work`, so
the systemd unit created in `services.nexus` fails as well. The issue
wasn't actively known as the `nixos/nexus` test wasn't registered in
Hydra (see #40257).
This patch contains the following changes:
* Adds `tests.nexus` to `release.nix` to run the test on Hydra.
* Makes JVM parameters configurable: by default all JVM options were located
in `result/bin/nexus.vmoptions` which made it quite hard to patch
these parameters. Now it's possible to override all parameters by
running `VM_OPTS_FILE=custom-nexus.vmoptions ./result/bin/nexus run`
(after patching the `nexus` shell script), additionally it's possible
to override these parameters with `services.nexus.vmoptions`.
* Bumped Nexus from 3.5.1 to 3.11.0
* Run the `nexus` test on Hydra with `callTest` in `nixos/release.nix`,
furthermore the test checks if the UI is available on the specified
port.
* Added myself as maintainer for the NixOS test and the package to have
some more people in case of further breakage.
* Added sufficient disk space to the `nexus` test, otherwise the service
fails with the following errors:
```
com.orientechnologies.orient.core.exception.ODatabaseException: Cannot create database 'accesslog'
com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing
a write operation to database 'accesslog' due to limited free space on the disk (242 MB). The database
is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard
drive and then reopen the database. The minimal required space is 256 MB. Required space is now set to
256MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit) .
```
/cc @ironpinguin @xeji
Some of the new tests need the `nix` executable on `PATH`.
One also needs `hpack`, but we really don’t want to embiggen (heh) the closure
because of that.
This commit adds smmap2, which is a separate pypi package from the existing
smmap 0.9.0, though they both come from the same repo. It also moves smmap into
the new python modules location.
* The revision checksum changed, so it's safer to pin the package
against an explicit `git` tag (https://github.com/NixOS/nixpkgs/pull/40381#issuecomment-388484695)
* Repaired `checkPhase` to run `py.test` properly on Python {2,3}
* Bumped to latest revision (unstable-2018-04-27) as it supports the entire test suite
properly.
unibilium expects to use the `ncursesw6-config` command to find terminfo dirs. Before that would fail & default to some nonexistant TERMINFO_DIRS value (on pure systems at least). This will add `ncurses.out` which is a little bit unfortunate because unibilium is meant as a replacement for ncurses. In the future, we should add a `terminfo` output to ncurses so that other things can use its db without pulling in its libraries & binaries.
Fixes#40404.